diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-07-06 10:26:39 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-07-06 16:51:58 +0200 |
commit | 25e7b99cc450490c38becb03d8bddd0199cfd3f9 (patch) | |
tree | d70bca5651734c8626e3fba0eb11377ad53847ff /src | |
parent | 0fe1d450c7a7d45cf5c011dd3c6dc0878a2210d2 (diff) |
netlink_linearize: use div_round_up in byteorder length
Use div_round_up() to calculate the byteorder length, otherwise fields
that take % BITS_PER_BYTE != 0 are not considered by the byteorder
expression.
Reported-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/netlink_linearize.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c index 11cf48a3..f5b2d6bb 100644 --- a/src/netlink_linearize.c +++ b/src/netlink_linearize.c @@ -806,7 +806,7 @@ static void netlink_gen_unary(struct netlink_linearize_ctx *ctx, netlink_put_register(nle, NFTNL_EXPR_BYTEORDER_SREG, dreg); netlink_put_register(nle, NFTNL_EXPR_BYTEORDER_DREG, dreg); nftnl_expr_set_u32(nle, NFTNL_EXPR_BYTEORDER_LEN, - expr->len / BITS_PER_BYTE); + div_round_up(expr->len, BITS_PER_BYTE)); nftnl_expr_set_u32(nle, NFTNL_EXPR_BYTEORDER_SIZE, byte_size); nftnl_expr_set_u32(nle, NFTNL_EXPR_BYTEORDER_OP, |