From: Ying Xue <ying.xue@windriver.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Miller <davem@davemloft.net>, <netdev@vger.kernel.org>,
<alexei@purestorage.com>, <joern@purestorage.com>, <ja@ssi.bg>
Subject: Re: [PATCH net-next 2/6] neigh: fix a possible leak issue of neigh entry
Date: Mon, 18 May 2015 13:55:09 +0800 [thread overview]
Message-ID: <55597EBD.8040002@windriver.com> (raw)
In-Reply-To: <1431925082.621.31.camel@edumazet-glaptop2.roam.corp.google.com>
On 05/18/2015 12:58 PM, Eric Dumazet wrote:
> On Mon, 2015-05-18 at 11:24 +0800, Ying Xue wrote:
>
>> If the issue of "neigh use-after-free" is fixed by the first patch although you
>> said the atomic_read() was not safe for us, is the patch still wrong? If it's
>> really wrong, can you please give more detailed explanation to help me
>> understand why the change is wrong and but why a similar timer usage in
>> sk_reset_timer() is not wrong?
>
> Why do you believe sk_reset_timer() would be wrong ?
>
Sorry, I don't think sk_reset_timer() is wrong, instead I suppose
neigh_add_timer() is wrong :)
> Difference between neigh_add_timer() and sk_reset_timer() is very
> simple :
>
> neigh_add_timer() must be called while the timer is not yet armed.
>
In case that the caller of neigh_add_timer() attempts to modify an active timer
due to a bug or something wrong else, why not prevent neigh_add_timer() from
taking neigh refcnt beside posting a warning message?
So, exactly speaking, we cannot say neigh_add_timer() is completely wrong
regarding your mentioned above assumption that neigh timer is absolutely not
armed when neigh_add_timer() is called. But we can say its behaviour is not
designed very well. From this point, the patch seems still a bit valuable for us.
Regards,
Ying
> sk_reset_timer() can be called while timer is already armed.
>
> You are changing neigh_add_timer() for no good reason, just because you
> want it to be 'like sk_reset_timer()' ?
>
>
>
>
>
next prev parent reply other threads:[~2015-05-18 5:55 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-15 6:55 [PATCH net-next 0/6] neigh cleanups and fixes Ying Xue
2015-05-15 6:55 ` [PATCH net-next 1/6] net: fix a double free issue for neighbour entry Ying Xue
2015-05-15 6:55 ` [PATCH net-next 2/6] neigh: fix a possible leak issue of neigh entry Ying Xue
2015-05-15 12:12 ` Eric Dumazet
2015-05-15 15:39 ` David Miller
2015-05-18 3:24 ` Ying Xue
2015-05-18 4:58 ` Eric Dumazet
2015-05-18 5:55 ` Ying Xue [this message]
2015-05-18 12:54 ` Eric Dumazet
2015-05-15 6:55 ` [PATCH net-next 3/6] neigh: don't delete neighbour time in neigh_destroy Ying Xue
2015-05-15 6:55 ` [PATCH net-next 4/6] neigh: align the usage of neigh timer with one of sock timer Ying Xue
2015-05-15 6:55 ` [PATCH net-next 5/6] neigh: neigh dead and timer variables should be protected under its lock Ying Xue
2015-05-15 6:55 ` [PATCH net-next 6/6] neigh: use standard interface to modify timer Ying Xue
2015-05-15 12:14 ` [PATCH net-next 0/6] neigh cleanups and fixes Eric Dumazet
2015-05-15 15:40 ` David Miller
2015-05-18 3:30 ` Ying Xue
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=55597EBD.8040002@windriver.com \
--to=ying.xue@windriver.com \
--cc=alexei@purestorage.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=ja@ssi.bg \
--cc=joern@purestorage.com \
--cc=netdev@vger.kernel.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).