main/asterisk.c: ast_el_read_char

Make sure buf[res] is not accessed at res=-1 (buffer underrun).
Address Sanitizer will complain about this quite loudly.

ASTERISK-24801 #close

Change-Id: Ifcd7f691310815a31756b76067c56fba299d3ae9
changes/60/2060/1
Diederik de Groot 9 years ago committed by Mark Michelson
parent f87c3275cc
commit c68c66c61f

@ -2808,13 +2808,14 @@ static int ast_el_read_char(EditLine *editline, char *cp)
console_print(buf, 0); console_print(buf, 0);
if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (buf[res-2] == '\n'))) { if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (res >= 2 && buf[res-2] == '\n'))) {
*cp = CC_REFRESH; *cp = CC_REFRESH;
return(1); return(1);
} else } else {
lastpos = 1; lastpos = 1;
} }
} }
}
*cp = '\0'; *cp = '\0';
return (0); return (0);

Loading…
Cancel
Save