From: "Bill Bonaparte" <programme110@gmail.com>
To: "'Jesper Dangaard Brouer'" <brouer@redhat.com>
Cc: <fw@strlen.de>, <linux-kernel@vger.kernel.org>,
"'Pablo Neira Ayuso'" <pablo@netfilter.org>,
"'Patrick McHardy'" <kaber@trash.net>, <kadlec@blackhole.kfki.hu>,
<davem@davemloft.net>, "'Changli Gao'" <xiaosuo@gmail.com>,
"'Andrey Vagin'" <avagin@openvz.org>,
<netfilter-devel@vger.kernel.org>, <netdev@vger.kernel.org>
Subject: re: netfilter: nf_conntrack: there maybe a bug in __nf_conntrack_confirm, when it race against get_next_corpse
Date: Fri, 7 Nov 2014 14:47:32 +0800 [thread overview]
Message-ID: <01dd01cffa56$bdb10460$39130d20$@gmail.com> (raw)
On Tue, 6 Nov 2014 21:01:00
"Jesper" <brouter@redhat.com> wrote:
>There is several issues with your submission. I'll take care of
resubmitting a patch in your name (so you will get credit in the git log).
>
>If you care to know, issues are:
>1. you are not sending to the appropriate mailing lists, 2. patch is as an
attachment (should be inlined), 3. the patch have style and white-space
issues.
Thanks, Jesper. This is my first time to submit a patch, not know much about
the rules. I will get it soon.
>> if there is a race at operating ct->status, there will be in
>> alternative
>> case:
>> 1) IPS_DYING bit which set in get_next_corpse override other bits (e.g.
>> IPS_SRC_NAT_DONE_BIT), or
>> 2) other bits (e.g. IPS_SRC_NAT_DONE_BIT) which set in
>> nf_nat_setup_info override IPS_DYING bit.
> Notice the set_bit() is atomic, so we don't have these issues (of bits
getting overridden).
In most cases, we do the atomic operation on ct->status (with set_bit), but
in function nf_nat_setup_info, we
assume that unconfirmed ct is always holded by current cpu, and has no race
against other cpus, so we don't
use set_bit.
the following code is extracted from the nf_nat_setup_info:
/* Non-atomic: we own this at the moment. */
if (maniptype == NF_NAT_MANIP_SRC)
ct->status |= IPS_SRC_NAT;
else
ct->status |= IPS_DST_NAT;
--
Best regards,
Bill Bonaparte
next reply other threads:[~2014-11-07 6:47 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-07 6:47 Bill Bonaparte [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-11-04 1:52 netfilter: nf_conntrack: there maybe a bug in __nf_conntrack_confirm, when it race against get_next_corpse billbonaparte
2014-11-04 1:48 billbonaparte
2014-11-06 13:00 ` Jesper Dangaard Brouer
[not found] <02ef01cff25f$29887f60$7c997e20$@gmail.com>
2014-10-28 3:37 ` billbonaparte
2014-10-28 9:46 ` Florian Westphal
2014-10-28 10:11 ` Jesper Dangaard Brouer
2014-10-28 3:27 billbonaparte
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='01dd01cffa56$bdb10460$39130d20$@gmail.com' \
--to=programme110@gmail.com \
--cc=avagin@openvz.org \
--cc=brouer@redhat.com \
--cc=davem@davemloft.net \
--cc=fw@strlen.de \
--cc=kaber@trash.net \
--cc=kadlec@blackhole.kfki.hu \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
--cc=xiaosuo@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.