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 --]
prev parent 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).