]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_voicemail: Fix test_voicemail_notify_endl test. 76/2576/1
authorJoshua Colp <jcolp@digium.com>
Tue, 12 Apr 2016 14:10:45 +0000 (11:10 -0300)
committerJoshua Colp <jcolp@digium.com>
Tue, 12 Apr 2016 15:21:56 +0000 (10:21 -0500)
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

apps/app_voicemail.c

index ce99cc9eb71a447e456cf85e68eef9d85ac8137d..798f844fa9a8e325a20b93b6aa5ab2883fb553bf 100644 (file)
@@ -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;
                        }