From 73ee6f7f4d76c442fb7a3ba3087061b4eef604e3 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 26 May 2017 11:49:21 +0100 Subject: expression: don't trim off unary expression on delinearization This transformation introduces an unnecessary asymmetry between the linearization and delinearization steps that prevent rule deletion by name to work fine. Moreover, do not print htonl and ntonl from unary expression, this syntax is not allowed by the parser. Signed-off-by: Pablo Neira Ayuso --- src/netlink_delinearize.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/netlink_delinearize.c') diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index 49dc6a60..b355eff4 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -1759,10 +1759,7 @@ static void expr_postprocess(struct rule_pp_ctx *ctx, struct expr **exprp) } case EXPR_UNARY: expr_postprocess(ctx, &expr->arg); - expr_set_type(expr->arg, expr->arg->dtype, !expr->arg->byteorder); - - *exprp = expr_get(expr->arg); - expr_free(expr); + expr_set_type(expr, expr->arg->dtype, !expr->arg->byteorder); break; case EXPR_BINOP: expr_postprocess(ctx, &expr->left); -- cgit v1.2.3