From: Mark Michelson Date: Wed, 1 Apr 2015 20:43:31 +0000 (+0000) Subject: Backport revision 429223 from Asterisk 13 X-Git-Tag: 11.18.0-rc1~78 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=695dcfbf8bdbaa4936310222ca6a57ac1fe7f5b2;p=thirdparty%2Fasterisk.git Backport revision 429223 from Asterisk 13 The bug fixed by that patch exists in Asterisk 11 as well, so the fix should be applied there. When connecting to a remote Asterisk console, the buffer used to read the initial hostname/pid/version from the main Asterisk process did not ensure the input was NULL-terminated, and the buffer was small for certain use cases. This patch expands the buffer to be 256 bytes and ensures the input it reads is NULL-terminated. ASTERISK-21854 #close Reported by klaus3000 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@433919 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/asterisk.c b/main/asterisk.c index ca85363516..2174c5c64d 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -3056,7 +3056,7 @@ static int ast_el_read_history(char *filename) static void ast_remotecontrol(char *data) { - char buf[80]; + char buf[256] = ""; int res; char filename[80] = ""; char *hostname; @@ -3073,7 +3073,7 @@ static void ast_remotecontrol(char *data) signal(SIGTERM, __remote_quit_handler); signal(SIGHUP, __remote_quit_handler); - if (read(ast_consock, buf, sizeof(buf)) < 0) { + if (read(ast_consock, buf, sizeof(buf) - 1) < 0) { ast_log(LOG_ERROR, "read() failed: %s\n", strerror(errno)); return; }