b.a.t.m.a.n.lists.open-mesh.org archive mirror
 help / color / mirror / Atom feed
From: Marek Lindner <mareklindner@neomailbox.ch>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: Re: [B.A.T.M.A.N.] [PATCHv4 maint 5/5] batman-adv: Fix potential synchronization issues in mcast tvlv handler
Date: Wed, 17 Jun 2015 18:41:29 +0800	[thread overview]
Message-ID: <2830554.KUT0a7xqCK@voltaire> (raw)
In-Reply-To: <1434467426-4281-6-git-send-email-linus.luessing@c0d3.blue>

[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]

On Tuesday, June 16, 2015 17:10:26 Linus Lüssing wrote:
> So far the mcast tvlv handler did not anticipate the processing of
> multiple incoming OGMs from the same originator at the same time. This
> can lead to various issues:
> 
> * Broken refcounting: For instance two mcast handlers might both assume
>   that an originator just got multicast capabilities and will together
>   wrongly decrease mcast.num_disabled by two, potentially leading to
>   an integer underflow.
> 
> * Potential kernel panic on hlist_del_rcu(): Two mcast handlers might
>   one after another try to do an
>   hlist_del_rcu(&orig->mcast_want_all_*_node). The second one will
>   cause memory corruption / crashes.
>   (Reported by: Sven Eckelmann <sven@narfation.org>)
> 
> Right in the beginning the code path makes assumptions about the current
> multicast related state of an originator and bases all updates on that. The
> easiest and least error prune way to fix the issues in this case is to
> serialize multiple mcast handler invocations with a spinlock.
> 
> Fixes: 77ec494490d6 ("batman-adv: Announce new capability via multicast
> TVLV") Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
> ---
>  multicast.c  |   62
> ++++++++++++++++++++++++++++++++++++++++++++++------------ originator.c
> |    4 ++++
>  types.h      |    3 +++
>  3 files changed, 56 insertions(+), 13 deletions(-)

Applied in revision 7f220ed.

Thanks,
Marek

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

      reply	other threads:[~2015-06-17 10:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-16 15:10 [B.A.T.M.A.N.] [PATCHv4 maint 0/5] Fixes for parallel OGM processing Linus Lüssing
2015-06-16 15:10 ` [B.A.T.M.A.N.] [PATCHv4 maint 1/5] batman-adv: Make DAT capability changes atomic Linus Lüssing
2015-06-17 10:35   ` Marek Lindner
2015-06-16 15:10 ` [B.A.T.M.A.N.] [PATCHv4 maint 2/5] batman-adv: Make NC " Linus Lüssing
2015-06-17 10:37   ` Marek Lindner
2015-06-16 15:10 ` [B.A.T.M.A.N.] [PATCHv4 maint 3/5] batman-adv: Make TT " Linus Lüssing
2015-06-17 10:38   ` Marek Lindner
2015-06-16 15:10 ` [B.A.T.M.A.N.] [PATCHv4 maint 4/5] batman-adv: Make MCAST " Linus Lüssing
2015-06-17 10:39   ` Marek Lindner
2015-06-16 15:10 ` [B.A.T.M.A.N.] [PATCHv4 maint 5/5] batman-adv: Fix potential synchronization issues in mcast tvlv handler Linus Lüssing
2015-06-17 10:41   ` Marek Lindner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2830554.KUT0a7xqCK@voltaire \
    --to=mareklindner@neomailbox.ch \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).