From 38c15e7b1fc713b6d5d6fe18325ae924e69eb9d2 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Mon, 17 Feb 2014 16:48:05 +0100 Subject: 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 Signed-off-by: Pablo Neira Ayuso --- src/netlink_delinearize.c | 4 ++-- 1 file 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); -- cgit v1.2.3