diff options
author | Florian Westphal <fw@strlen.de> | 2014-02-17 16:48:05 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-02-17 23:50:10 +0100 |
commit | 38c15e7b1fc713b6d5d6fe18325ae924e69eb9d2 (patch) | |
tree | f62dbcd8f0a0534f84d3e2a499c1a67766855c9e /src/netlink_delinearize.c | |
parent | 0545e0c13b3b7dff4dd53c8a68d8d1066c2829c0 (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>
Diffstat (limited to 'src/netlink_delinearize.c')
-rw-r--r-- | src/netlink_delinearize.c | 4 |
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); |