]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: bridge: mrp: fix Option TLV length in MRP_Test frames
authorDavid Corvaglia <david@corvaglia.dev>
Sun, 26 Jul 2026 06:26:05 +0000 (06:26 +0000)
committerJakub Kicinski <kuba@kernel.org>
Mon, 27 Jul 2026 22:56:55 +0000 (15:56 -0700)
oui is a pointer, so sizeof(oui) is the pointer size. The MRA
Option TLV thus advertises a wrong length (15 vs 10 on x86_64),
causing misparsing of the frame on peers. Fix is to replace
with sizeof(*oui).

Fixes: f7458934b079 ("net: bridge: mrp: Update the Test frames for MRA")
Signed-off-by: David Corvaglia <david@corvaglia.dev>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/20260726062605.2746-1-david@corvaglia.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/bridge/br_mrp.c

index 3f7126a7d72003c3e0a6366506bb0b55da49f0a4..179d2470b724888ed2eff979ea333691d3410eb1 100644 (file)
@@ -215,7 +215,7 @@ static struct sk_buff *br_mrp_alloc_test_skb(struct br_mrp *mrp,
                struct br_mrp_oui_hdr *oui = NULL;
                u8 length;
 
-               length = sizeof(*sub_opt) + sizeof(*sub_tlv) + sizeof(oui) +
+               length = sizeof(*sub_opt) + sizeof(*sub_tlv) + sizeof(*oui) +
                        MRP_OPT_PADDING;
                br_mrp_skb_tlv(skb, BR_MRP_TLV_HEADER_OPTION, length);