diff --git a/lib/com_err/lex.l b/lib/com_err/lex.l index 921945cdf..f23ae5d7e 100644 --- a/lib/com_err/lex.l +++ b/lib/com_err/lex.l @@ -89,7 +89,7 @@ getstring(void) int i = 0; int c; int quote = 0; - while((c = input()) != EOF){ + while(i < sizeof(x) - 1 && (c = input()) != EOF){ if(quote) { x[i++] = c; quote = 0; @@ -110,6 +110,8 @@ getstring(void) } x[i] = '\0'; yylval.string = strdup(x); + if (yylval.string) + err(1, "malloc"); return STRING; }