diff options
author | Jenkins2 <jenkins2@gerrit.asterisk.org> | 2018-03-05 08:32:35 -0600 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2018-03-05 08:32:35 -0600 |
commit | 3afc2c52af6ea1f223fd5caf8eb4abd67273f91e (patch) | |
tree | ee68077d4c94c5e4b09f2ea0410eabdd99f90525 | |
parent | debe4fe7518756c1dedc58a96fe37e00649763b7 (diff) | |
parent | a7927471adc67daa7b335811ee640774904d5d3a (diff) |
Merge "core: Fix handling of maximum length lines in config files."
-rw-r--r-- | configs/samples/voicemail.conf.sample | 5 | ||||
-rw-r--r-- | main/config.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/configs/samples/voicemail.conf.sample b/configs/samples/voicemail.conf.sample index c90f8513c..e4130d356 100644 --- a/configs/samples/voicemail.conf.sample +++ b/configs/samples/voicemail.conf.sample @@ -145,8 +145,9 @@ maxlogins=3 ; You can select between two variables by using dialplan functions, e.g. ; ${IF(${ISNULL(${ORIG_VM_DATE})}?${VM_DATE}:${ORIG_VM_DATE})} ; -; Note: The emailbody config row can only be up to 512 characters due to a -; limitation in the Asterisk configuration subsystem. +; Note: The emailbody config row can only be up to 8190 characters due to a +; limitation in the Asterisk configuration subsystem. If compiled with +; LOW_MEMORY the limit is 510 characters. ;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX} ; The following definition is very close to the default, but the default shows ; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown diff --git a/main/config.c b/main/config.c index 118b9586e..8107fce04 100644 --- a/main/config.c +++ b/main/config.c @@ -2195,10 +2195,10 @@ static struct ast_config *config_text_file_load(const char *database, const char lineno++; if (fgets(buf, sizeof(buf), f)) { /* Skip lines that are too long */ - if (strlen(buf) == sizeof(buf) - 1 && buf[sizeof(buf) - 1] != '\n') { + if (strlen(buf) == sizeof(buf) - 1 && buf[sizeof(buf) - 2] != '\n') { ast_log(LOG_WARNING, "Line %d too long, skipping. It begins with: %.32s...\n", lineno, buf); while (fgets(buf, sizeof(buf), f)) { - if (strlen(buf) != sizeof(buf) - 1 || buf[sizeof(buf) - 1] == '\n') { + if (strlen(buf) != sizeof(buf) - 1 || buf[sizeof(buf) - 2] == '\n') { break; } } |