summaryrefslogtreecommitdiff
path: root/apps/app_voicemail.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2016-04-12 11:10:45 -0300
committerJoshua Colp <jcolp@digium.com>2016-04-12 10:22:06 -0500
commit5a0534dc62d276ce11438565ae1dc6c143f0983a (patch)
tree2eb1da8232a73654523b26357bd742b614b27561 /apps/app_voicemail.c
parent49813bc9e569c46ced4d0f09b34153ae2f9463ab (diff)
app_voicemail: Fix test_voicemail_notify_endl test.
The test_voicemail_notify_endl test checks the end-of-line characters of an email message to confirm that they are consistent. The test wrongfully assumed that reading from the email message into a buffer will always result in more than 1 character being read. This is incorrect. If only 1 character was read the test would go outside of the buffer and access other memory causing a crash. The test now checks to ensure that 2 or more characters are read in ensuring the test stays within the buffer. ASTERISK-25874 #close Change-Id: Ic2c89cea6e90f2c0bc2d8138306ebbffd4f8b710
Diffstat (limited to 'apps/app_voicemail.c')
-rw-r--r--apps/app_voicemail.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index aa8da5f17..79adbd094 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -14456,11 +14456,13 @@ AST_TEST_DEFINE(test_voicemail_notify_endl)
rewind(file);
while (fgets(buf, sizeof(buf), file)) {
if (
+ (strlen(buf) > 1 &&
#ifdef IMAP_STORAGE
buf[strlen(buf) - 2] != '\r'
#else
buf[strlen(buf) - 2] == '\r'
#endif
+ )
|| buf[strlen(buf) - 1] != '\n') {
res = AST_TEST_FAIL;
}