Thread (18 messages) 18 messages, 4 authors, 2022-08-04

Re: [PATCH v3] kernel/watch_queue: Make pipe NULL while clearing watch_queue

From: Eric Biggers <ebiggers@kernel.org>
Date: 2022-08-03 05:41:40
Also in: linux-kernel-mentees, lkml

On Wed, Aug 03, 2022 at 10:43:31AM +0530, Siddh Raman Pant wrote:
On Wed, 03 Aug 2022 09:42:28 +0530  Eric Biggers [off-list ref] wrote:
quoted
Under what circumstances is the pipe pointer still being dereferenced after the
pipe has been freed?  I don't see how it can be; see my explanation above.
It really didn't fix the crash. It caused the same crash reported here, which
I was already locally getting:
https://syzkaller.appspot.com/bug?extid=03d7b43290037d1f87ca
I tested the syzbot reproducer
https://syzkaller.appspot.com/text?tag=ReproC&x=174ea97e080000, and it does
*not* trigger the bug on the latest upstream.  But, it does trigger the bug if I
recent Linus's recent watch_queue fixes.

So I don't currently see any evidence of an unfixed bug.  If, nevertheless, you
believe that a bug is still unfixed, then please provide a reproducer and a fix
patch that clearly explains what it is fixing. 
There is a null check in post_one_notification for the pipe, most probably
because it *expects* the pointer to be NULL'd. Also, there is no reason to have
a dangling pointer stay, it's just a recipe for further bugs.
If you want to send a patch or patches to clean up the code, that is fine, but
please make it super clear what is a cleanup and what is a fix.

- Eric
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help