Re: [PATCH net 9/9] batman-adv: bla: fix freeing of claims on meshif deletion
Sven Eckelmann <[email protected]>
| Newsgroups | org.open-mesh.lists.batman,org.kernel.vger.netdev |
|---|---|
| Message-ID | <2492208.NG923GbCHz@sven-desktop> |
https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260821094813.201800-1-sw%40simonwunderlich.de?part=9
[...]
> Discovered by: opus-5 · Missed by: sonnet-5, gpt-5-6-sol, sashiko-gemini · Confirmed by: gpt-5-6-sol
>
> This isn't a regression introduced by this patch, but since the commit
> message names the missing rehashing as the reason for the change, is there
> a plan to address the underlying problem in
> batadv_bla_update_orig_address()?
See https://www.open-mesh.org/issues/452
[...]
> Discovered by: opus-5 · Missed by: sonnet-5, gpt-5-6-sol, sashiko-gemini · Confirmed by: gpt-5-6-sol
>
> Also pre-existing rather than caused by this patch: the 6 byte
> ether_addr_copy() into backbone_gw->orig is not a single atomic store, and
> batadv_bla_purge_claims() reads that same field under rcu_read_lock() and
> forwards the pointer straight into batadv_handle_unclaim():
>
> net/batman-adv/bridge_loop_avoidance.c:batadv_bla_purge_claims() {
> ...
> batadv_handle_unclaim(bat_priv, primary_if,
> backbone_gw->orig,
> claim->addr, claim->vid);
> ...
> }
>
> After this patch the batadv_compare_eth(backbone_addr,
> primary_if->net_dev->dev_addr) test is the only remaining decision in
> batadv_handle_unclaim(), because the claim is now removed unconditionally.
> Can a reader that observes a mix of the old and new MAC bytes here wrongly
> skip, or wrongly inject, the local UNCLAIM frame while the claim is deleted
> either way?
Will definitely not change the patch because of this unrelated finding (which
seems to be self-healing). Documented for Simon at
https://www.open-mesh.org/issues/469
Regards,
Sven
signature.asc
(application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS81G/PswftH/OW8cVND3cr0xT1ywUCaomOXQAKCRBND3cr0xT1 yww/AP92Z4vUW62S/ucm+Ddse7NTAyiBbQr06N84OSjUqSfsLwD/Y2BBFwxC1dzr H2ONzWMF3P2rHHJaVidIgmjszrJlXgY= =IEGh -----END PGP SIGNATURE-----