Re: [GIT] Networking

From: David Miller
Date: Sun Jul 09 2017 - 16:41:14 EST


From: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
Date: Sun, 9 Jul 2017 15:11:31 -0400

> On (07/09/17 11:49), Linus Torvalds wrote:
>>
>> On Sat, Jul 8, 2017 at 3:36 AM, David Miller <davem@xxxxxxxxxxxxx> wrote:
>> >
>> > 8) Fix socket leak on accept() in RDS, from Sowmini Varadhan. Also
>> > add a WARN_ON() to sock_graft() so other protocol stacks don't trip
>> > over this as well.
>>
>> Hmm. This one triggers for me on both my desktop and laptop at bootup.
>> Bog-standard machines, running F25 and F24 respectively.
>>
>> The warning doesn't seem particularly useful, although maybe that
>> "alg_accept()" gives people who know this code enough of a clue.
>
> My initial question was whether sock_graft() should do a sock_put()
> before cutting loose the existing parent->sk and assigning a new
> parent->sk (https://www.spinics.net/lists/netdev/msg442191.html)
>
> It look like PF_ALG sets up a ->sk in alg_create() (but this
> would get over-written in alg_accept()?)
>
> Cc'ing Herbert to see if this is expected behavior (and PF_ALG
> somehow does the right thing with the refcount for the ->sk
> set up in alg_create) in which case I suppose we should drop the
> WARN_ON.

I think we've found yet another socket leak, this time in
AF_ALG.