loop: Fix NULL pointer dereference in lo_rw_aio()#878
Conversation
|
Upstream branch: eed108e |
de94ac7 to
86d8d37
Compare
|
Upstream branch: e8c2f9f |
cccb9c1 to
86e822e
Compare
86d8d37 to
9805659
Compare
|
Upstream branch: eb3f4b7 |
86e822e to
c80354f
Compare
9805659 to
3f4a345
Compare
|
Upstream branch: 8fde5d1 |
c80354f to
af2d01e
Compare
|
Upstream branch: 8fde5d1 |
af2d01e to
9ddbc6a
Compare
3f4a345 to
c6dc343
Compare
|
Upstream branch: e43ffb6 |
9ddbc6a to
1b2219f
Compare
c6dc343 to
fc36596
Compare
|
Upstream branch: ba3e43a |
1b2219f to
3b2a139
Compare
fc36596 to
7bed9c3
Compare
|
Upstream branch: ddd664b |
3b2a139 to
25d33df
Compare
|
Upstream branch: ddd664b |
25d33df to
3246a90
Compare
7bed9c3 to
a7bb5c5
Compare
|
Upstream branch: 979c294 |
3246a90 to
9fd2b1c
Compare
a7bb5c5 to
5e41a3b
Compare
|
Upstream branch: acb7500 |
9fd2b1c to
28b2545
Compare
5e41a3b to
c3a084b
Compare
|
Upstream branch: 9716c08 |
28b2545 to
edd7421
Compare
c3a084b to
5f78e5d
Compare
|
Upstream branch: 2a2974b |
edd7421 to
8dd6fef
Compare
5f78e5d to
e48f9db
Compare
|
Upstream branch: 062871f |
8dd6fef to
195c89b
Compare
199644a to
e6d9eb8
Compare
|
Upstream branch: 66affa3 |
195c89b to
20aef69
Compare
e6d9eb8 to
7d8604f
Compare
syzbot is reporting NULL pointer dereference in lo_rw_aio() [1][2]. An analysis by the Gemini AI collaborator [3] considers that this problem is caused by a timing shift primarily exposed by commit 65565ca ("block: unify the synchronous bi_end_io callbacks"), along with helper refactorings like commit 92c3737 ("block: add a bio_submit_or_kill helper"). But due to difficulty of reproducing this race, discussion about what is happening and how to fix this problem is stalling. Also, we haven't identified how many filesystems are subjected to this problem. Therefore, this patch introduces a grace period for flushing pending I/O requests (which should be a good thing from the perspective of defensive programming) so that we won't hit NULL pointer dereference problem, and also emits BUG: message in order to help filesystem developers identify the caller of an I/O request that failed to wait for completion so that filesystem developers can fix such caller to wait for completion. Note that emitting BUG: message is enabled only if CONFIG_KCOV=y, for this check is a waste of computation resources for almost all users. Link: https://syzkaller.appspot.com/bug?extid=cd8a9a308e879a4e2c28 [1] Link: https://syzkaller.appspot.com/bug?extid=bc273027d5643e48e5b3 [2] Link: https://lkml.kernel.org/r/fbb3edda-f108-4e5b-acf2-266f043f8125@I-love.SAKURA.ne.jp [3] Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
|
Upstream branch: bade58e |
20aef69 to
cb59728
Compare
|
Upstream branch: bade58e |
1 similar comment
|
Upstream branch: bade58e |
|
Github failed to update this PR after force push. Close it. |
Pull request for series with
subject: loop: Fix NULL pointer dereference in lo_rw_aio()
version: 3
url: https://patchwork.kernel.org/project/linux-block/list/?series=1100166