From 3057660a792a4b8f895cee6987932af6f5564ce3 Mon Sep 17 00:00:00 2001
From: Russell Bryant <russell@russellbryant.com>
Date: Sun, 3 Sep 2006 22:56:01 +0000
Subject: [PATCH] when calling this function to append to a dynamic string and
 the buffer was not large enough and had to be reallocated, cut off the
 partially appended data. Otherwise, the function will get called over and
 over again appending to the end every time and never thinking it has enough
 room.

Thanks to jmls for access to his machine for debugging!

(issue #7691)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/utils.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/main/utils.c b/main/utils.c
index feb4a621ff..3a8e85f06e 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -1219,6 +1219,9 @@ int ast_dynamic_str_thread_build_va(struct ast_dynamic_str **buf, size_t max_len
 		if (!(*buf = ast_realloc(*buf, (*buf)->len + sizeof(*(*buf)))))
 			return AST_DYNSTR_BUILD_FAILED;
 
+		if (append)
+			(*buf)->str[offset] = '\0';
+
 		if (ts)
 			pthread_setspecific(ts->key, *buf);
 
-- 
GitLab