From: Pablo Neira Ayuso Date: Fri, 2 Dec 2016 10:23:29 +0000 (+0100) Subject: parser_bison: allow RESET token from rhs X-Git-Tag: v0.8~280 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0eaedf58acad4214dd827515c56b9da26ab9e9e3;p=thirdparty%2Fnftables.git parser_bison: allow RESET token from rhs Stateful objects have introduced a RESET token in the parser. This breaks the use of RESET from the rhs, to fix this: 1) I added a new rule to catch this case, thus, dccp doesn't break. 2) Update reject_opts so reject with tcp reset still works. Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/parser_bison.y b/src/parser_bison.y index b571fbbe..5b829a24 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -1897,15 +1897,9 @@ reject_opts : /* empty */ $4); $0->reject.expr->dtype = &icmpx_code_type; } - | WITH TCP STRING + | WITH TCP RESET { - if (strcmp($3, "reset") == 0) { - $0->reject.type = NFT_REJECT_TCP_RST; - } else { - erec_queue(error(&@2, "unsupported reject type", $3), - state->msgs); - YYERROR; - } + $0->reject.type = NFT_REJECT_TCP_RST; } ; @@ -2721,6 +2715,12 @@ primary_rhs_expr : symbol_expr { $$ = $1; } current_scope(state), "ecn"); } + | RESET + { + $$ = symbol_expr_alloc(&@$, SYMBOL_VALUE, + current_scope(state), + "reset"); + } ; relational_op : EQ { $$ = OP_EQ; }