diff --git a/main/utils.c b/main/utils.c index 5d1855448c62f35ace567488276436501527be96..555800bcecd0df2f8489aa17c178981b1a7f6523 100644 --- a/main/utils.c +++ b/main/utils.c @@ -997,7 +997,14 @@ int ast_dynamic_str_thread_build_va(struct ast_dynamic_str **buf, size_t max_len return AST_DYNSTR_BUILD_FAILED; (*buf)->len = need; - /* Truncate the previous attempt. XXX this should be unconditional */ + /* Truncate the previous attempt. This is only needed for the + * append operation because if the write is from the beginning, + * it will get automatically overwritten when this function + * gets called again. When appending, if this was not done, + * this function would be called over and over again, because + * each attempt would be appending more and more partial + * strings, never having enough space to finish. + */ if (append) (*buf)->str[offset] = '\0';