Message ID | 1414644048-5792-3-git-send-email-linus.luessing@c0d3.blue |
---|---|
State | Accepted, archived |
Commit | 9e9d48e829cd93ffbb5ced323caf046ebe963394 |
Headers | show |
On Thursday 30 October 2014 05:40:47 Linus Lüssing wrote: > When purging an orig_node we should only decrease counter tracking the > number of nodes without multicast optimizations support if it was > increased through this orig_node before. > > A not yet quite initialized orig_node (meaning it did not have its turn > in the mcast-tvlv handler so far) which gets purged would not adhere to > this and will lead to a counter imbalance. > > Fixing this by adding a check whether the orig_node is mcast-initalized > before decreasing the counter in the mcast-orig_node-purging routine. > > Introduced by 77ec494490d60d89b42cd01d5dbf8dee04503623 > ("batman-adv: Announce new capability via multicast TVLV") > > Reported-by: Tobias Hachmer <tobias@hachmer.de> > Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue> > --- > multicast.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Applied in revision 9e9d48e. Thanks, Marek
diff --git a/multicast.c b/multicast.c index 02c2e0c..fe57bde 100644 --- a/multicast.c +++ b/multicast.c @@ -741,7 +741,8 @@ void batadv_mcast_purge_orig(struct batadv_orig_node *orig) { struct batadv_priv *bat_priv = orig->bat_priv; - if (!(orig->capabilities & BATADV_ORIG_CAPA_HAS_MCAST)) + if (!(orig->capabilities & BATADV_ORIG_CAPA_HAS_MCAST) && + orig->capa_initialized & BATADV_ORIG_CAPA_HAS_MCAST) atomic_dec(&bat_priv->mcast.num_disabled); batadv_mcast_want_unsnoop_update(bat_priv, orig, BATADV_NO_FLAGS);
When purging an orig_node we should only decrease counter tracking the number of nodes without multicast optimizations support if it was increased through this orig_node before. A not yet quite initialized orig_node (meaning it did not have its turn in the mcast-tvlv handler so far) which gets purged would not adhere to this and will lead to a counter imbalance. Fixing this by adding a check whether the orig_node is mcast-initalized before decreasing the counter in the mcast-orig_node-purging routine. Introduced by 77ec494490d60d89b42cd01d5dbf8dee04503623 ("batman-adv: Announce new capability via multicast TVLV") Reported-by: Tobias Hachmer <tobias@hachmer.de> Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue> --- multicast.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)