Skip to content

Commit 81e9d6f

Browse files
Roguebanthaakpm00
authored andcommitted
aio: fix mremap after fork null-deref
Commit e4a0d3e ("aio: Make it possible to remap aio ring") introduced a null-deref if mremap is called on an old aio mapping after fork as mm->ioctx_table will be set to NULL. [[email protected]: fix 80 column issue] Link: https://lkml.kernel.org/r/[email protected] Fixes: e4a0d3e ("aio: Make it possible to remap aio ring") Signed-off-by: Seth Jenkins <[email protected]> Signed-off-by: Jeff Moyer <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Benjamin LaHaise <[email protected]> Cc: Jann Horn <[email protected]> Cc: Pavel Emelyanov <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent ca2b1a5 commit 81e9d6f

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

fs/aio.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,9 @@ static int aio_ring_mremap(struct vm_area_struct *vma)
361361
spin_lock(&mm->ioctx_lock);
362362
rcu_read_lock();
363363
table = rcu_dereference(mm->ioctx_table);
364+
if (!table)
365+
goto out_unlock;
366+
364367
for (i = 0; i < table->nr; i++) {
365368
struct kioctx *ctx;
366369

@@ -374,6 +377,7 @@ static int aio_ring_mremap(struct vm_area_struct *vma)
374377
}
375378
}
376379

380+
out_unlock:
377381
rcu_read_unlock();
378382
spin_unlock(&mm->ioctx_lock);
379383
return res;

0 commit comments

Comments
 (0)