]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
main/asterisk.c: ast_el_read_char 32/2032/3
authorDiederik de Groot <ddegroot@talon.nl>
Mon, 18 Jan 2016 09:49:48 +0000 (10:49 +0100)
committerDiederik de Groot <ddegroot@talon.nl>
Wed, 20 Jan 2016 17:37:56 +0000 (18:37 +0100)
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

main/asterisk.c

index a7842a6ab682a0ea4a9ad2071e9926997c0a3961..ca560cdb2731fcfe7f16d0c9f8027dd40eed0eac 100644 (file)
@@ -2708,11 +2708,12 @@ static int ast_el_read_char(EditLine *editline, char *cp)
 
                        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;
                                return(1);
-                       } else
+                       } else {
                                lastpos = 1;
+                       }
                }
        }