]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_voicemail: Fix test_voicemail_notify_endl test. 75/2575/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 14:11:59 +0000 (11:11 -0300)
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 0911ecce8304e2d9a2b014706dc288fc83c9d7ff..7f65fd700e746a088253eecec9f53dc4b9b50948 100644 (file)
@@ -14077,11 +14077,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;
                        }