From: Joshua Colp Date: Tue, 12 Apr 2016 14:10:45 +0000 (-0300) Subject: app_voicemail: Fix test_voicemail_notify_endl test. X-Git-Tag: 11.23.0-rc1~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fchanges%2F75%2F2575%2F1;p=thirdparty%2Fasterisk.git 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 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 0911ecce83..7f65fd700e 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -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; }