From 6a0fb05cc335350c92738a88d7434514ab4548cb Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Tue, 10 Dec 2019 22:08:44 +0100 Subject: mnl: round up the map data size too Same as key: if the size isn't divisible by BITS_PER_BYTE, we need to round up, not down. Without this, you can't store vlan ids in a map, as they are truncated to 8 bit. Signed-off-by: Florian Westphal --- src/mnl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mnl.c b/src/mnl.c index 03afe79c..d5bdff29 100644 --- a/src/mnl.c +++ b/src/mnl.c @@ -861,7 +861,7 @@ int mnl_nft_set_add(struct netlink_ctx *ctx, const struct cmd *cmd, nftnl_set_set_u32(nls, NFTNL_SET_DATA_TYPE, dtype_map_to_kernel(set->data->dtype)); nftnl_set_set_u32(nls, NFTNL_SET_DATA_LEN, - set->data->len / BITS_PER_BYTE); + div_round_up(set->data->len, BITS_PER_BYTE)); } if (set_is_objmap(set->flags)) nftnl_set_set_u32(nls, NFTNL_SET_OBJ_TYPE, set->objtype); -- cgit v1.2.3