summaryrefslogtreecommitdiff
path: root/main/config.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2014-04-08 20:53:33 +0000
committerRichard Mudgett <rmudgett@digium.com>2014-04-08 20:53:33 +0000
commit551b2d11837fe55a6a2b75220356af4b116ecfe2 (patch)
tree76f5b22acf17c2bf0e7ffbf1919b3c6933d047d8 /main/config.c
parent158bd5dd7453779d9c6a6179af38d2ce1178ec7c (diff)
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 ........ Merged revisions 411961 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 411962 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@411963 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/config.c')
-rw-r--r--main/config.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/main/config.c b/main/config.c
index 10ac18e28..041f1bca2 100644
--- a/main/config.c
+++ b/main/config.c
@@ -125,8 +125,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)
@@ -1839,7 +1841,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) {