netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
[parent not found: <012601cff7d1$7ce2d620$76a88260$@gmail.com>]
* re: netfilter: nf_conntrack: there maybe a bug in __nf_conntrack_confirm, when it race against get_next_corpse
@ 2014-11-07  6:47 Bill Bonaparte
  0 siblings, 0 replies; 3+ messages in thread
From: Bill Bonaparte @ 2014-11-07  6:47 UTC (permalink / raw)
  To: 'Jesper Dangaard Brouer'
  Cc: fw, linux-kernel, 'Pablo Neira Ayuso',
	'Patrick McHardy', kadlec, davem, 'Changli Gao',
	'Andrey Vagin', netfilter-devel, netdev


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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-07  6:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <02ef01cff25f$29887f60$7c997e20$@gmail.com>
     [not found] ` <02f201cff260$8622e610$9268b230$@gmail.com>
2014-10-28 10:11   ` netfilter: nf_conntrack: there maybe a bug in __nf_conntrack_confirm, when it race against get_next_corpse Jesper Dangaard Brouer
     [not found] <012601cff7d1$7ce2d620$76a88260$@gmail.com>
2014-11-06 13:00 ` Jesper Dangaard Brouer
2014-11-07  6:47 Bill Bonaparte

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).