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