summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2014-02-17 16:48:05 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2014-02-17 23:50:10 +0100
commit38c15e7b1fc713b6d5d6fe18325ae924e69eb9d2 (patch)
treef62dbcd8f0a0534f84d3e2a499c1a67766855c9e
parent0545e0c13b3b7dff4dd53c8a68d8d1066c2829c0 (diff)
netlink_delinearize: meta: fix wrong type in attributes
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>
-rw-r--r--src/netlink_delinearize.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c
index 0e75c8a9..5eec6cfb 100644
--- a/src/netlink_delinearize.c
+++ b/src/netlink_delinearize.c
@@ -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);