]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
config: Fix CB_ADD_LEN() to work as originally intended.
authorRichard Mudgett <rmudgett@digium.com>
Tue, 8 Apr 2014 20:50:45 +0000 (20:50 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 8 Apr 2014 20:50:45 +0000 (20:50 +0000)
Fix a long standing bug in CB_ADD_LEN() behaving like CB_ADD().

ASTERISK-23546 #close
Reported by: Walter Doekes
........

Merged revisions 411960 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@411961 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/config.c

index 29c4c07a7f19e84a2c474879d680a2db7417d36b..0769b80d1c55da777e27b66e51da1d53433388da 100644 (file)
@@ -124,8 +124,10 @@ static void  CB_ADD(struct ast_str **cb, const char *str)
 static void  CB_ADD_LEN(struct ast_str **cb, const char *str, int len)
 {
        char *s = ast_alloca(len + 1);
-       ast_copy_string(s, str, len);
-       ast_str_append(cb, 0, "%s", str);
+
+       memcpy(s, str, len);
+       s[len] = '\0';
+       ast_str_append(cb, 0, "%s", s);
 }
 
 static void CB_RESET(struct ast_str *cb, struct ast_str *llb)
@@ -1785,7 +1787,7 @@ static struct ast_config *config_text_file_load(const char *database, const char
                                        } else if ((comment_p >= new_buf + 2) &&
                                                   (*(comment_p - 1) == COMMENT_TAG) &&
                                                   (*(comment_p - 2) == COMMENT_TAG)) {
-                                               /* Meta-Comment end detected */
+                                               /* Meta-Comment end detected "--;" */
                                                comment--;
                                                new_buf = comment_p + 1;
                                                if (!comment) {