From: Richard Mudgett Date: Tue, 8 Apr 2014 20:50:45 +0000 (+0000) Subject: config: Fix CB_ADD_LEN() to work as originally intended. X-Git-Tag: 11.10.0-rc1~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8382e5fbcc6f66e2867f72ad5d934cf07fbf69f7;p=thirdparty%2Fasterisk.git config: Fix CB_ADD_LEN() to work as originally intended. 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 --- diff --git a/main/config.c b/main/config.c index 29c4c07a7f..0769b80d1c 100644 --- a/main/config.c +++ b/main/config.c @@ -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) {