rule: make cmd_free(NULL) valid
commit
581e051ae26b503484b7634b8799a9b9b531e95d upstream.
bison uses cmd_free($$) as destructor, but base_cmd can
set it to NULL, e.g.
| ELEMENT set_spec set_block_expr
{
if (nft_cmd_collapse_elems(CMD_ADD, state->cmds, &$2, $3)) {
handle_free(&$2);
expr_free($3);
$$ = NULL; // cmd set to NULL
break;
}
$$ = cmd_alloc(CMD_ADD, CMD_OBJ_ELEMENTS, &$2, &@$, $3);
expr_free(NULL) is legal, cmd_free() causes crash. So just allow
this to avoid cluttering parser_bison.y with "if ($$)".
Also add the afl-generated bogon input to the test files.
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Pablo Neira Ayuso <pablo@netfilter.org>