]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
nft: fix inconsistent data type in NFT_EXPR_CMP_OP and NFT_EXPR_META_KEY
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 10 Jan 2014 13:02:22 +0000 (14:02 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 10 Jan 2014 17:41:32 +0000 (18:41 +0100)
We have to use uint32_t instead uint8_t to adapt this to the libnftables
changes.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
iptables/nft-ipv4.c
iptables/nft-shared.c

index 1afe8b663a7c75f0459765775d3f04ac7e5b9663..3aeb8a726ef6949a21c22b367828d94040b8e3e0 100644 (file)
@@ -131,7 +131,7 @@ static void get_frag(struct nft_rule_expr_iter *iter, bool *inv)
                return;
        }
 
-       op = nft_rule_expr_get_u8(e, NFT_EXPR_CMP_OP);
+       op = nft_rule_expr_get_u32(e, NFT_EXPR_CMP_OP);
        if (op == NFT_CMP_EQ)
                *inv = true;
        else
index e0eaa170bb4276fe168d31ff6bc83a7ee1406bbf..43f03b201a7927453afd3394e43a0da4455fdf2c 100644 (file)
@@ -90,8 +90,8 @@ void add_cmp_ptr(struct nft_rule *r, uint32_t op, void *data, size_t len)
        if (expr == NULL)
                return;
 
-       nft_rule_expr_set_u8(expr, NFT_EXPR_CMP_SREG, NFT_REG_1);
-       nft_rule_expr_set_u8(expr, NFT_EXPR_CMP_OP, op);
+       nft_rule_expr_set_u32(expr, NFT_EXPR_CMP_SREG, NFT_REG_1);
+       nft_rule_expr_set_u32(expr, NFT_EXPR_CMP_OP, op);
        nft_rule_expr_set(expr, NFT_EXPR_CMP_DATA, data, len);
 
        nft_rule_add_expr(r, expr);
@@ -225,7 +225,7 @@ void parse_meta(struct nft_rule_expr *e, uint8_t key, char *iniface,
        switch(key) {
        case NFT_META_IIF:
                value = nft_rule_expr_get_u32(e, NFT_EXPR_CMP_DATA);
-               if (nft_rule_expr_get_u8(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
+               if (nft_rule_expr_get_u32(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
                        *invflags |= IPT_INV_VIA_IN;
 
                if_indextoname(value, iniface);
@@ -234,7 +234,7 @@ void parse_meta(struct nft_rule_expr *e, uint8_t key, char *iniface,
                break;
        case NFT_META_OIF:
                value = nft_rule_expr_get_u32(e, NFT_EXPR_CMP_DATA);
-               if (nft_rule_expr_get_u8(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
+               if (nft_rule_expr_get_u32(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
                        *invflags |= IPT_INV_VIA_OUT;
 
                if_indextoname(value, outiface);
@@ -243,7 +243,7 @@ void parse_meta(struct nft_rule_expr *e, uint8_t key, char *iniface,
                break;
        case NFT_META_IIFNAME:
                ifname = nft_rule_expr_get(e, NFT_EXPR_CMP_DATA, &len);
-               if (nft_rule_expr_get_u8(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
+               if (nft_rule_expr_get_u32(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
                        *invflags |= IPT_INV_VIA_IN;
 
                memcpy(iniface, ifname, len);
@@ -258,7 +258,7 @@ void parse_meta(struct nft_rule_expr *e, uint8_t key, char *iniface,
                break;
        case NFT_META_OIFNAME:
                ifname = nft_rule_expr_get(e, NFT_EXPR_CMP_DATA, &len);
-               if (nft_rule_expr_get_u8(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
+               if (nft_rule_expr_get_u32(e, NFT_EXPR_CMP_OP) == NFT_CMP_NEQ)
                        *invflags |= IPT_INV_VIA_OUT;
 
                memcpy(outiface, ifname, len);
@@ -372,7 +372,7 @@ void get_cmp_data(struct nft_rule_expr_iter *iter,
        }
 
        memcpy(data, nft_rule_expr_get(e, NFT_EXPR_CMP_DATA, &len), dlen);
-       op = nft_rule_expr_get_u8(e, NFT_EXPR_CMP_OP);
+       op = nft_rule_expr_get_u32(e, NFT_EXPR_CMP_OP);
        if (op == NFT_CMP_NEQ)
                *inv = true;
        else
@@ -383,7 +383,7 @@ void
 nft_parse_meta(struct nft_rule_expr *e, struct nft_rule_expr_iter *iter,
               int family, void *data)
 {
-       uint8_t key = nft_rule_expr_get_u8(e, NFT_EXPR_META_KEY);
+       uint8_t key = nft_rule_expr_get_u32(e, NFT_EXPR_META_KEY);
        struct nft_family_ops *ops = nft_family_ops_lookup(family);
        const char *name;