]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
netlink_delinearize: meta: fix wrong type in attributes
authorFlorian Westphal <fw@strlen.de>
Mon, 17 Feb 2014 15:48:05 +0000 (16:48 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 17 Feb 2014 22:50:10 +0000 (23:50 +0100)
We segfault on 'list filter' when meta expr is used as _u8
returns invalid register 0.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/netlink_delinearize.c

index 0e75c8a979ef010c1078c6c2271afc0a5c2e697d..5eec6cfbfbd82b5284794b62c4f046a665a92c75 100644 (file)
@@ -346,9 +346,9 @@ static void netlink_parse_meta_sreg(struct netlink_parse_ctx *ctx,
        struct expr *expr;
 
        expr = netlink_get_register(ctx, loc,
-                       nft_rule_expr_get_u8(nle, NFT_EXPR_META_SREG));
+                       nft_rule_expr_get_u32(nle, NFT_EXPR_META_SREG));
        stmt = meta_stmt_alloc(loc,
-                              nft_rule_expr_get_u8(nle, NFT_EXPR_META_KEY),
+                              nft_rule_expr_get_u32(nle, NFT_EXPR_META_KEY),
                               expr);
        expr_set_type(expr, stmt->meta.tmpl->dtype, stmt->meta.tmpl->byteorder);