From 178bf85812ba426aba887157e0dbc5ab26b61561 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Sun, 30 Nov 2014 22:52:20 +0100 Subject: scanner: don't bug on too large values Add a new ERROR symbol to handle scanning of too large values. :1:36-99: Error: bad value '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' add rule ip test-ip4 input ct mark 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ instead of: BUG: nft: scanner.l:470: nft_lex: Assertion `0' failed. Signed-off-by: Pablo Neira Ayuso --- src/scanner.l | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/scanner.l') diff --git a/src/scanner.l b/src/scanner.l index 2fafa71a..72b54471 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -459,16 +459,20 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) {decstring} { errno = 0; yylval->val = strtoull(yytext, NULL, 0); - if (errno != 0) - BUG(); + if (errno != 0) { + yylval->string = xstrdup(yytext); + return ERROR; + } return NUM; } {hexstring} { errno = 0; yylval->val = strtoull(yytext, NULL, 0); - if (errno != 0) - BUG(); + if (errno != 0) { + yylval->string = xstrdup(yytext); + return ERROR; + } return NUM; } -- cgit v1.2.3