From 628203491deffcf01ee010152419ced8f549e57e Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 19 Sep 2013 20:11:27 +0200 Subject: src: replace size_t by uint32_t in set/get interfaces 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 --- src/expr.c | 14 +++++++------- src/expr/bitwise.c | 4 ++-- src/expr/byteorder.c | 4 ++-- src/expr/cmp.c | 4 ++-- src/expr/counter.c | 4 ++-- src/expr/ct.c | 4 ++-- src/expr/data_reg.c | 6 +++--- src/expr/data_reg.h | 2 +- src/expr/exthdr.c | 4 ++-- src/expr/immediate.c | 4 ++-- src/expr/limit.c | 4 ++-- src/expr/log.c | 4 ++-- src/expr/lookup.c | 4 ++-- src/expr/match.c | 4 ++-- src/expr/meta.c | 4 ++-- src/expr/nat.c | 4 ++-- src/expr/payload.c | 4 ++-- src/expr/target.c | 4 ++-- src/expr_ops.h | 6 +++--- src/set_elem.c | 8 ++++---- 20 files changed, 48 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/expr.c b/src/expr.c index d565637..2605029 100644 --- a/src/expr.c +++ b/src/expr.c @@ -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); } diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c index 9d521b1..f293069 100644 --- a/src/expr/bitwise.c +++ b/src/expr/bitwise.c @@ -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); diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c index 1034a31..f05ddb5 100644 --- a/src/expr/byteorder.c +++ b/src/expr/byteorder.c @@ -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); diff --git a/src/expr/cmp.c b/src/expr/cmp.c index b9f0f6a..c6789b6 100644 --- a/src/expr/cmp.c +++ b/src/expr/cmp.c @@ -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); diff --git a/src/expr/counter.c b/src/expr/counter.c index 971b5b1..bba9261 100644 --- a/src/expr/counter.c +++ b/src/expr/counter.c @@ -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); diff --git a/src/expr/ct.c b/src/expr/ct.c index 2fc6629..ccefa1b 100644 --- a/src/expr/ct.c +++ b/src/expr/ct.c @@ -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); diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c index 64a6c16..2b9ecee 100644 --- a/src/expr/data_reg.c +++ b/src/expr/data_reg.c @@ -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, ""); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = snprintf(buf+offset, len, "%zd", reg->len); + ret = snprintf(buf+offset, len, "%u", 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; diff --git a/src/expr/data_reg.h b/src/expr/data_reg.h index 98c3a4c..8a6a235 100644 --- a/src/expr/data_reg.h +++ b/src/expr/data_reg.h @@ -11,7 +11,7 @@ enum { union nft_data_reg { struct { uint32_t val[4]; - size_t len; + uint32_t len; }; struct { int verdict; diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c index 9ca66e5..1290f3f 100644 --- a/src/expr/exthdr.c +++ b/src/expr/exthdr.c @@ -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); diff --git a/src/expr/immediate.c b/src/expr/immediate.c index facb8f5..e824801 100644 --- a/src/expr/immediate.c +++ b/src/expr/immediate.c @@ -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); diff --git a/src/expr/limit.c b/src/expr/limit.c index 6c06ce5..6954014 100644 --- a/src/expr/limit.c +++ b/src/expr/limit.c @@ -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); diff --git a/src/expr/log.c b/src/expr/log.c index feb4184..0a8e86c 100644 --- a/src/expr/log.c +++ b/src/expr/log.c @@ -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); diff --git a/src/expr/lookup.c b/src/expr/lookup.c index b9b0229..1f10e15 100644 --- a/src/expr/lookup.c +++ b/src/expr/lookup.c @@ -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); diff --git a/src/expr/match.c b/src/expr/match.c index 9f98462..91e59ff 100644 --- a/src/expr/match.c +++ b/src/expr/match.c @@ -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); diff --git a/src/expr/meta.c b/src/expr/meta.c index 91a689e..98d83b0 100644 --- a/src/expr/meta.c +++ b/src/expr/meta.c @@ -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); diff --git a/src/expr/nat.c b/src/expr/nat.c index da28ede..3c40b93 100644 --- a/src/expr/nat.c +++ b/src/expr/nat.c @@ -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); diff --git a/src/expr/payload.c b/src/expr/payload.c index 2b9f5e0..d76e2c4 100644 --- a/src/expr/payload.c +++ b/src/expr/payload.c @@ -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); diff --git a/src/expr/target.c b/src/expr/target.c index 8dc752a..19eedde 100644 --- a/src/expr/target.c +++ b/src/expr/target.c @@ -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); diff --git a/src/expr_ops.h b/src/expr_ops.h index 12973ce..becc85a 100644 --- a/src/expr_ops.h +++ b/src/expr_ops.h @@ -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); diff --git a/src/set_elem.c b/src/set_elem.c index ec4a1a6..a9e0751 100644 --- a/src/set_elem.c +++ b/src/set_elem.c @@ -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; } -- cgit v1.2.3