When connecting to the remote console, an id string
is first provided that consts of the hostname, pid,
and version. This is parsed by the remote instance
using a buffer that may be too short, and can allow
a buffer overrun because it is not terminated. This
patch adds termination and a larger buffer.
Review: https://reviewboard.asterisk.org/r/4182/
........
Merged revisions 429223 from http://svn.asterisk.org/svn/asterisk/branches/13
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@429224
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
static void ast_remotecontrol(char *data)
{
- char buf[80];
+ char buf[256] = "";
int res;
char filename[80] = "";
char *hostname;
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;
}