]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
bond: fix stack smash in xstats main
authorStephen Hemminger <stephen@networkplumber.org>
Thu, 26 Jun 2025 13:50:17 +0000 (06:50 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Thu, 26 Jun 2025 21:52:54 +0000 (14:52 -0700)
Building with stack smashing detection finds an off by one
in the bond xstats attribute parsing.

$ ip link xstats type bond dev bond0
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
bond0
                    LACPDU Rx 0
                    LACPDU Tx 0
                    LACPDU Unknown type Rx 0
                    LACPDU Illegal Rx 0
                    Marker Rx 0
                    Marker Tx 0
                    Marker response Rx 0
                    Marker response Tx 0
                    Marker unknown type Rx 0
*** stack smashing detected ***: terminated

Program received signal SIGABRT, Aborted.

Reported-by: z30015464 <zhongxuan2@huawei.com>
Fixes: 440c5075d662 ("ip: bond: add xstats support")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
ip/iplink_bond.c

index 19af67d001f0711da1b3e5156d9a5ffa1471f813..62dd907c75f36ae55c0bd502a1b8a4a12f83f671 100644 (file)
@@ -852,7 +852,7 @@ static void bond_print_stats_attr(struct rtattr *attr, int ifindex)
        const char *ifname = "";
        int rem;
 
-       parse_rtattr(bondtb, LINK_XSTATS_TYPE_MAX+1, RTA_DATA(attr),
+       parse_rtattr(bondtb, LINK_XSTATS_TYPE_MAX, RTA_DATA(attr),
        RTA_PAYLOAD(attr));
        if (!bondtb[LINK_XSTATS_TYPE_BOND])
                return;