]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
tc: nat: ffs should operation on host byte ordered data
authorTorben Nielsen <t8927095@gmail.com>
Thu, 6 Mar 2025 11:25:20 +0000 (12:25 +0100)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 12 Mar 2025 18:19:53 +0000 (11:19 -0700)
In print_nat the mask length is calculated as

len = ffs(sel->mask);
len = len ? 33 - len : 0;

The mask is stored in network byte order, it should be converted
to host byte order before calculating first bit set.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
tc/m_nat.c

index da947aeabb3d0eb5e138835bd9b912a50c9fc0cc..0ec3fd117b9a0ad56f418f118be246b5dc2c69e1 100644 (file)
@@ -156,7 +156,7 @@ print_nat(const struct action_util *au, FILE * f, struct rtattr *arg)
        }
        sel = RTA_DATA(tb[TCA_NAT_PARMS]);
 
-       len = ffs(sel->mask);
+       len = ffs(ntohl(sel->mask));
        len = len ? 33 - len : 0;
 
        print_string(PRINT_ANY, "direction", "%s",