]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
src: replace size_t by uint32_t in set/get interfaces
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 19 Sep 2013 18:11:27 +0000 (20:11 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 19 Sep 2013 20:54:25 +0000 (22:54 +0200)
This patch breaks the ABI to shrink the size parameter from 8
to 4 bytes in x86_64. The maximum length of netlink attributes
is 2 bytes, so 4 bytes as attribute payload length should be
enough.

After this patch, size_t is only used in the nft_*_snprintf
interfaces.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
22 files changed:
include/libnftables/expr.h
include/libnftables/set.h
src/expr.c
src/expr/bitwise.c
src/expr/byteorder.c
src/expr/cmp.c
src/expr/counter.c
src/expr/ct.c
src/expr/data_reg.c
src/expr/data_reg.h
src/expr/exthdr.c
src/expr/immediate.c
src/expr/limit.c
src/expr/log.c
src/expr/lookup.c
src/expr/match.c
src/expr/meta.c
src/expr/nat.c
src/expr/payload.c
src/expr/target.c
src/expr_ops.h
src/set_elem.c

index 65ca1f00f416abfbf28468a76e7dee062e6e7e5a..b8f1d1e45511c3ff508cba6e8db4046d878d4f30 100644 (file)
@@ -19,14 +19,14 @@ struct nft_rule_expr *nft_rule_expr_alloc(const char *name);
 void nft_rule_expr_free(struct nft_rule_expr *expr);
 
 bool nft_rule_expr_is_set(const struct nft_rule_expr *expr, uint16_t type);
-void nft_rule_expr_set(struct nft_rule_expr *expr, uint16_t type, const void *data, size_t data_len);
+void nft_rule_expr_set(struct nft_rule_expr *expr, uint16_t type, const void *data, uint32_t data_len);
 void nft_rule_expr_set_u8(struct nft_rule_expr *expr, uint16_t type, uint8_t data);
 void nft_rule_expr_set_u16(struct nft_rule_expr *expr, uint16_t type, uint16_t data);
 void nft_rule_expr_set_u32(struct nft_rule_expr *expr, uint16_t type, uint32_t data);
 void nft_rule_expr_set_u64(struct nft_rule_expr *expr, uint16_t type, uint64_t data);
 void nft_rule_expr_set_str(struct nft_rule_expr *expr, uint16_t type, const char *str);
 
-const void *nft_rule_expr_get(const struct nft_rule_expr *expr, uint16_t type, size_t *data_len);
+const void *nft_rule_expr_get(const struct nft_rule_expr *expr, uint16_t type, uint32_t *data_len);
 uint8_t nft_rule_expr_get_u8(const struct nft_rule_expr *expr, uint16_t type);
 uint16_t nft_rule_expr_get_u16(const struct nft_rule_expr *expr, uint16_t type);
 uint32_t nft_rule_expr_get_u32(const struct nft_rule_expr *expr, uint16_t type);
index 4c95cf97bc625e0d2f503735d40ba32c4821fe8e..e37782630e002d308e2bcf89a44fa368ddfaf6c6 100644 (file)
@@ -88,11 +88,11 @@ void nft_set_elem_free(struct nft_set_elem *s);
 void nft_set_elem_add(struct nft_set *s, struct nft_set_elem *elem);
 
 void nft_set_elem_attr_unset(struct nft_set_elem *s, uint16_t attr);
-void nft_set_elem_attr_set(struct nft_set_elem *s, uint16_t attr, const void *data, size_t data_len);
+void nft_set_elem_attr_set(struct nft_set_elem *s, uint16_t attr, const void *data, uint32_t data_len);
 void nft_set_elem_attr_set_u32(struct nft_set_elem *s, uint16_t attr, uint32_t val);
 void nft_set_elem_attr_set_str(struct nft_set_elem *s, uint16_t attr, const char *str);
 
-const void *nft_set_elem_attr_get(struct nft_set_elem *s, uint16_t attr, size_t *data_len);
+const void *nft_set_elem_attr_get(struct nft_set_elem *s, uint16_t attr, uint32_t *data_len);
 const char *nft_set_elem_attr_get_str(struct nft_set_elem *s, uint16_t attr);
 uint32_t nft_set_elem_attr_get_u32(struct nft_set_elem *s, uint16_t attr);
 
index d5656372f63320dc26f043fb26ad4837923a0699..2605029e32b41736d71fcd1c1dc3185b9f6b16b7 100644 (file)
@@ -61,7 +61,7 @@ EXPORT_SYMBOL(nft_rule_expr_is_set);
 
 void
 nft_rule_expr_set(struct nft_rule_expr *expr, uint16_t type,
-                 const void *data, size_t data_len)
+                 const void *data, uint32_t data_len)
 {
        switch(type) {
        case NFT_RULE_EXPR_ATTR_NAME:   /* cannot be modified */
@@ -110,7 +110,7 @@ nft_rule_expr_set_str(struct nft_rule_expr *expr, uint16_t type, const char *str
 EXPORT_SYMBOL(nft_rule_expr_set_str);
 
 const void *nft_rule_expr_get(const struct nft_rule_expr *expr,
-                             uint16_t type, size_t *data_len)
+                             uint16_t type, uint32_t *data_len)
 {
        const void *ret;
 
@@ -133,7 +133,7 @@ EXPORT_SYMBOL(nft_rule_expr_get);
 uint8_t nft_rule_expr_get_u8(const struct nft_rule_expr *expr, uint16_t type)
 {
        const void *data;
-       size_t data_len;
+       uint32_t data_len;
 
        data = nft_rule_expr_get(expr, type, &data_len);
        if (data == NULL)
@@ -149,7 +149,7 @@ EXPORT_SYMBOL(nft_rule_expr_get_u8);
 uint16_t nft_rule_expr_get_u16(const struct nft_rule_expr *expr, uint16_t type)
 {
        const void *data;
-       size_t data_len;
+       uint32_t data_len;
 
        data = nft_rule_expr_get(expr, type, &data_len);
        if (data == NULL)
@@ -165,7 +165,7 @@ EXPORT_SYMBOL(nft_rule_expr_get_u16);
 uint32_t nft_rule_expr_get_u32(const struct nft_rule_expr *expr, uint16_t type)
 {
        const void *data;
-       size_t data_len;
+       uint32_t data_len;
 
        data = nft_rule_expr_get(expr, type, &data_len);
        if (data == NULL)
@@ -181,7 +181,7 @@ EXPORT_SYMBOL(nft_rule_expr_get_u32);
 uint64_t nft_rule_expr_get_u64(const struct nft_rule_expr *expr, uint16_t type)
 {
        const void *data;
-       size_t data_len;
+       uint32_t data_len;
 
        data = nft_rule_expr_get(expr, type, &data_len);
        if (data == NULL)
@@ -196,7 +196,7 @@ EXPORT_SYMBOL(nft_rule_expr_get_u64);
 
 const char *nft_rule_expr_get_str(const struct nft_rule_expr *expr, uint16_t type)
 {
-       size_t data_len;
+       uint32_t data_len;
 
        return (const char *)nft_rule_expr_get(expr, type, &data_len);
 }
index 9d521b13f0a3681718a5c6bc64a690981ba221c7..f293069101a6794828fb222831aee05b545bba62 100644 (file)
@@ -33,7 +33,7 @@ struct nft_expr_bitwise {
 
 static int
 nft_rule_expr_bitwise_set(struct nft_rule_expr *e, uint16_t type,
-                         const void *data, size_t data_len)
+                         const void *data, uint32_t data_len)
 {
        struct nft_expr_bitwise *bitwise = nft_expr_data(e);
 
@@ -63,7 +63,7 @@ nft_rule_expr_bitwise_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_bitwise_get(const struct nft_rule_expr *e, uint16_t type,
-                         size_t *data_len)
+                         uint32_t *data_len)
 {
        struct nft_expr_bitwise *bitwise = nft_expr_data(e);
 
index 1034a3197bd0432e0b5ceb6f4cbdc9f81200a844..f05ddb5a3266e0db517fb5fc844d8dcb332a817c 100644 (file)
@@ -33,7 +33,7 @@ struct nft_expr_byteorder {
 
 static int
 nft_rule_expr_byteorder_set(struct nft_rule_expr *e, uint16_t type,
-                         const void *data, size_t data_len)
+                         const void *data, uint32_t data_len)
 {
        struct nft_expr_byteorder *byteorder = nft_expr_data(e);
 
@@ -61,7 +61,7 @@ nft_rule_expr_byteorder_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_byteorder_get(const struct nft_rule_expr *e, uint16_t type,
-                           size_t *data_len)
+                           uint32_t *data_len)
 {
        struct nft_expr_byteorder *byteorder = nft_expr_data(e);
 
index b9f0f6aafc78f9d87ca2845931bec92f4011e48a..c6789b6e89276b8833905eea588f7e18373a3fb6 100644 (file)
@@ -32,7 +32,7 @@ struct nft_expr_cmp {
 
 static int
 nft_rule_expr_cmp_set(struct nft_rule_expr *e, uint16_t type,
-                     const void *data, size_t data_len)
+                     const void *data, uint32_t data_len)
 {
        struct nft_expr_cmp *cmp = nft_expr_data(e);
 
@@ -55,7 +55,7 @@ nft_rule_expr_cmp_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_cmp_get(const struct nft_rule_expr *e, uint16_t type,
-                     size_t *data_len)
+                     uint32_t *data_len)
 {
        struct nft_expr_cmp *cmp = nft_expr_data(e);
 
index 971b5b1bca92319c68e66334eb56f00e6293a5ef..bba926187c575f51b2c94d0d710d8a99ccb9d24a 100644 (file)
@@ -30,7 +30,7 @@ struct nft_expr_counter {
 
 static int
 nft_rule_expr_counter_set(struct nft_rule_expr *e, uint16_t type,
-                         const void *data, size_t data_len)
+                         const void *data, uint32_t data_len)
 {
        struct nft_expr_counter *ctr = nft_expr_data(e);
 
@@ -49,7 +49,7 @@ nft_rule_expr_counter_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_counter_get(const struct nft_rule_expr *e, uint16_t type,
-                         size_t *data_len)
+                         uint32_t *data_len)
 {
        struct nft_expr_counter *ctr = nft_expr_data(e);
 
index 2fc662962392a22ab1e92efdc408322325a22288..ccefa1b6bf149d1faac703fafb45a7dfbeeca69b 100644 (file)
@@ -37,7 +37,7 @@ struct nft_expr_ct {
 
 static int
 nft_rule_expr_ct_set(struct nft_rule_expr *e, uint16_t type,
-                      const void *data, size_t data_len)
+                      const void *data, uint32_t data_len)
 {
        struct nft_expr_ct *ct = nft_expr_data(e);
 
@@ -59,7 +59,7 @@ nft_rule_expr_ct_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_ct_get(const struct nft_rule_expr *e, uint16_t type,
-                    size_t *data_len)
+                    uint32_t *data_len)
 {
        struct nft_expr_ct *ct = nft_expr_data(e);
 
index 64a6c16f47490b5683e2a46830924fe44b0a1726..2b9ecee7c35fc13e441776d05bd649601d2940de 100644 (file)
@@ -219,7 +219,7 @@ nft_data_reg_value_snprintf_json(char *buf, size_t size,
        ret = snprintf(buf, len, "\"data_reg\": { \"type\" : \"value\", ");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, "\"len\" : %zd, ", reg->len);
+       ret = snprintf(buf+offset, len, "\"len\" : %u, ", reg->len);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
@@ -255,7 +255,7 @@ int nft_data_reg_value_snprintf_xml(char *buf, size_t size,
        ret = snprintf(buf, len, "<data_reg type=\"value\">");
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
-       ret = snprintf(buf+offset, len, "<len>%zd</len>", reg->len);
+       ret = snprintf(buf+offset, len, "<len>%u</len>", reg->len);
        SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
        for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
@@ -452,7 +452,7 @@ static int
 __nft_parse_data(union nft_data_reg *data, const struct nlattr *attr)
 {
        void *orig = mnl_attr_get_payload(attr);
-       size_t data_len = mnl_attr_get_payload_len(attr);
+       uint32_t data_len = mnl_attr_get_payload_len(attr);
 
        if (data_len == 0)
                return -1;
index 98c3a4c0b9a04009c11227e08d7dd290e576d71c..8a6a2350159038787e8a20554fe3df09b78d3346 100644 (file)
@@ -11,7 +11,7 @@ enum {
 union nft_data_reg {
        struct {
                uint32_t        val[4];
-               size_t          len;
+               uint32_t        len;
        };
        struct {
                int             verdict;
index 9ca66e5f09db78c8d86818f3706822062f835b38..1290f3f8e047f2a0b82ca73bab9ac1102cebbcba 100644 (file)
@@ -39,7 +39,7 @@ struct nft_expr_exthdr {
 
 static int
 nft_rule_expr_exthdr_set(struct nft_rule_expr *e, uint16_t type,
-                         const void *data, size_t data_len)
+                         const void *data, uint32_t data_len)
 {
        struct nft_expr_exthdr *exthdr = nft_expr_data(e);
 
@@ -64,7 +64,7 @@ nft_rule_expr_exthdr_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_exthdr_get(const struct nft_rule_expr *e, uint16_t type,
-                        size_t *data_len)
+                        uint32_t *data_len)
 {
        struct nft_expr_exthdr *exthdr = nft_expr_data(e);
 
index facb8f52d5673facdf5ee01c19249d049727ca7a..e82480189359dcb56200f78d387b63672c44fc7a 100644 (file)
@@ -29,7 +29,7 @@ struct nft_expr_immediate {
 
 static int
 nft_rule_expr_immediate_set(struct nft_rule_expr *e, uint16_t type,
-                           const void *data, size_t data_len)
+                           const void *data, uint32_t data_len)
 {
        struct nft_expr_immediate *imm = nft_expr_data(e);
 
@@ -58,7 +58,7 @@ nft_rule_expr_immediate_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_immediate_get(const struct nft_rule_expr *e, uint16_t type,
-                           size_t *data_len)
+                           uint32_t *data_len)
 {
        struct nft_expr_immediate *imm = nft_expr_data(e);
 
index 6c06ce5c87402323eb176996960a6b4695a9247b..6954014b826f6ea6fe62cd67adf45e3a7cffbb0f 100644 (file)
@@ -30,7 +30,7 @@ struct nft_expr_limit {
 
 static int
 nft_rule_expr_limit_set(struct nft_rule_expr *e, uint16_t type,
-                      const void *data, size_t data_len)
+                      const void *data, uint32_t data_len)
 {
        struct nft_expr_limit *limit = nft_expr_data(e);
 
@@ -49,7 +49,7 @@ nft_rule_expr_limit_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_limit_get(const struct nft_rule_expr *e, uint16_t type,
-                       size_t *data_len)
+                       uint32_t *data_len)
 {
        struct nft_expr_limit *limit = nft_expr_data(e);
 
index feb41840de2bbae5edc3900e794a2b07fc97b134..0a8e86c306461712bb7842e15c231d9c6dd00d27 100644 (file)
@@ -30,7 +30,7 @@ struct nft_expr_log {
 };
 
 static int nft_rule_expr_log_set(struct nft_rule_expr *e, uint16_t type,
-                                const void *data, size_t data_len)
+                                const void *data, uint32_t data_len)
 {
        struct nft_expr_log *log = nft_expr_data(e);
 
@@ -58,7 +58,7 @@ static int nft_rule_expr_log_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_log_get(const struct nft_rule_expr *e, uint16_t type,
-                     size_t *data_len)
+                     uint32_t *data_len)
 {
        struct nft_expr_log *log = nft_expr_data(e);
 
index b9b0229cc02459c95cde06f7934eb8cb9f0013e0..1f10e1533d95c1c0ca544ee32739d0ecf8b69bcb 100644 (file)
@@ -35,7 +35,7 @@ struct nft_expr_lookup {
 
 static int
 nft_rule_expr_lookup_set(struct nft_rule_expr *e, uint16_t type,
-                         const void *data, size_t data_len)
+                         const void *data, uint32_t data_len)
 {
        struct nft_expr_lookup *lookup = nft_expr_data(e);
 
@@ -58,7 +58,7 @@ nft_rule_expr_lookup_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_lookup_get(const struct nft_rule_expr *e, uint16_t type,
-                        size_t *data_len)
+                        uint32_t *data_len)
 {
        struct nft_expr_lookup *lookup = nft_expr_data(e);
 
index 9f98462f7c79573343882a40647963e763e05a53..91e59ffd15b87b20749f84c8e095b8a198c247f5 100644 (file)
@@ -36,7 +36,7 @@ struct nft_expr_match {
 
 static int
 nft_rule_expr_match_set(struct nft_rule_expr *e, uint16_t type,
-                        const void *data, size_t data_len)
+                        const void *data, uint32_t data_len)
 {
        struct nft_expr_match *mt = nft_expr_data(e);
 
@@ -63,7 +63,7 @@ nft_rule_expr_match_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_match_get(const struct nft_rule_expr *e, uint16_t type,
-                       size_t *data_len)
+                       uint32_t *data_len)
 {
        struct nft_expr_match *mt = nft_expr_data(e);
 
index 91a689e65341e677bbbc3a7f41fcc58e2647e597..98d83b07a09303ee0e1187884dc18cb9864b6c08 100644 (file)
@@ -33,7 +33,7 @@ struct nft_expr_meta {
 
 static int
 nft_rule_expr_meta_set(struct nft_rule_expr *e, uint16_t type,
-                      const void *data, size_t data_len)
+                      const void *data, uint32_t data_len)
 {
        struct nft_expr_meta *meta = nft_expr_data(e);
 
@@ -52,7 +52,7 @@ nft_rule_expr_meta_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_meta_get(const struct nft_rule_expr *e, uint16_t type,
-                      size_t *data_len)
+                      uint32_t *data_len)
 {
        struct nft_expr_meta *meta = nft_expr_data(e);
 
index da28edeed34f23b90d02f401ddd02fb94a7c7af9..3c40b9365fc0d13b67fef90de39398d549bce3b6 100644 (file)
@@ -35,7 +35,7 @@ struct nft_expr_nat {
 
 static int
 nft_rule_expr_nat_set(struct nft_rule_expr *e, uint16_t type,
-                     const void *data, size_t data_len)
+                     const void *data, uint32_t data_len)
 {
        struct nft_expr_nat *nat = nft_expr_data(e);
 
@@ -67,7 +67,7 @@ nft_rule_expr_nat_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_nat_get(const struct nft_rule_expr *e, uint16_t type,
-                     size_t *data_len)
+                     uint32_t *data_len)
 {
        struct nft_expr_nat *nat = nft_expr_data(e);
 
index 2b9f5e0d0b059e0bf6f0e59d8809302a6be55a29..d76e2c46ca3c615cf1f7c6e7b3a9ed571e14a0ba 100644 (file)
@@ -35,7 +35,7 @@ struct nft_expr_payload {
 
 static int
 nft_rule_expr_payload_set(struct nft_rule_expr *e, uint16_t type,
-                         const void *data, size_t data_len)
+                         const void *data, uint32_t data_len)
 {
        struct nft_expr_payload *payload = nft_expr_data(e);
 
@@ -60,7 +60,7 @@ nft_rule_expr_payload_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_payload_get(const struct nft_rule_expr *e, uint16_t type,
-                         size_t *data_len)
+                         uint32_t *data_len)
 {
        struct nft_expr_payload *payload = nft_expr_data(e);
 
index 8dc752abbb9586a147fc836c6ad909f4b7c626e0..19eeddefa27aa9cc0e8c3420690b66e03da96ac2 100644 (file)
@@ -36,7 +36,7 @@ struct nft_expr_target {
 
 static int
 nft_rule_expr_target_set(struct nft_rule_expr *e, uint16_t type,
-                        const void *data, size_t data_len)
+                        const void *data, uint32_t data_len)
 {
        struct nft_expr_target *tg = nft_expr_data(e);
 
@@ -63,7 +63,7 @@ nft_rule_expr_target_set(struct nft_rule_expr *e, uint16_t type,
 
 static const void *
 nft_rule_expr_target_get(const struct nft_rule_expr *e, uint16_t type,
-                        size_t *data_len)
+                        uint32_t *data_len)
 {
        struct nft_expr_target *tg = nft_expr_data(e);
 
index 12973cefafccb5aac58b8c92b0963ab5b8c3f6f3..becc85a8e6cbd3d26f0db231ca7dea1f72d8b06a 100644 (file)
@@ -21,10 +21,10 @@ struct expr_ops {
        struct list_head head;
 
        const char *name;
-       size_t  alloc_len;
+       uint32_t alloc_len;
        int     max_attr;
-       int     (*set)(struct nft_rule_expr *e, uint16_t type, const void *data, size_t data_len);
-       const void *(*get)(const struct nft_rule_expr *e, uint16_t type, size_t *data_len);
+       int     (*set)(struct nft_rule_expr *e, uint16_t type, const void *data, uint32_t data_len);
+       const void *(*get)(const struct nft_rule_expr *e, uint16_t type, uint32_t *data_len);
        int     (*parse)(struct nft_rule_expr *e, struct nlattr *attr);
        void    (*build)(struct nlmsghdr *nlh, struct nft_rule_expr *e);
        int     (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e);
index ec4a1a6a97bd643e14fb92c9ad1ffaa81ddec979..a9e07514cba77cc953d97ba830cbb360af61e68e 100644 (file)
@@ -77,7 +77,7 @@ void nft_set_elem_attr_unset(struct nft_set_elem *s, uint16_t attr)
 EXPORT_SYMBOL(nft_set_elem_attr_unset);
 
 void nft_set_elem_attr_set(struct nft_set_elem *s, uint16_t attr,
-                          const void *data, size_t data_len)
+                          const void *data, uint32_t data_len)
 {
        switch(attr) {
        case NFT_SET_ELEM_ATTR_FLAGS:
@@ -119,7 +119,7 @@ void nft_set_elem_attr_set_str(struct nft_set_elem *s, uint16_t attr, const char
 }
 EXPORT_SYMBOL(nft_set_elem_attr_set_str);
 
-const void *nft_set_elem_attr_get(struct nft_set_elem *s, uint16_t attr, size_t *data_len)
+const void *nft_set_elem_attr_get(struct nft_set_elem *s, uint16_t attr, uint32_t *data_len)
 {
        if (!(s->flags & (1 << attr)))
                return NULL;
@@ -144,7 +144,7 @@ EXPORT_SYMBOL(nft_set_elem_attr_get);
 
 const char *nft_set_elem_attr_get_str(struct nft_set_elem *s, uint16_t attr)
 {
-       size_t size;
+       uint32_t size;
 
        return nft_set_elem_attr_get(s, attr, &size);
 }
@@ -152,7 +152,7 @@ EXPORT_SYMBOL(nft_set_elem_attr_get_str);
 
 uint32_t nft_set_elem_attr_get_u32(struct nft_set_elem *s, uint16_t attr)
 {
-       size_t size;
+       uint32_t size;
        uint32_t val = *((uint32_t *)nft_set_elem_attr_get(s, attr, &size));
        return val;
 }