Re: fs, net: deadlock between bind/splice on af_unix
From: Cong Wang <hidden>
Date: 2017-02-10 01:38:25
Also in:
linux-fsdevel, lkml
From: Cong Wang <hidden>
Date: 2017-02-10 01:38:25
Also in:
linux-fsdevel, lkml
On Tue, Feb 7, 2017 at 6:20 AM, Mateusz Guzik [off-list ref] wrote:
Yes, but unix_release_sock is expected to leave the file behind. Note I'm not claiming there is a leak, but that racing threads will be able to trigger a condition where you create a file and fail to bind it.
Which is expected, right? No one guarantees the success of file creation is the success of bind, the previous code does but it is not part of API AFAIK. Should a sane user-space application check the file creation for a successful bind() or just check its return value?
What to do with the file now?
We just do what unix_release_sock() does, so why do you keep asking the same question? If you still complain about the race with user-space, think about the same race in-between a successful bind() and close(), nothing is new.