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. [jmoyer@redhat.com: fix 80 column issue] Link: https://lkml.kernel.org/r/x49sffq4nvg.fsf@segfault.boston.devel.redhat.com Fixes: e4a0d3e ("aio: Make it possible to remap aio ring") Signed-off-by: Seth Jenkins <sethjenkins@google.com> Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Benjamin LaHaise <bcrl@kvack.org> Cc: Jann Horn <jannh@google.com> Cc: Pavel Emelyanov <xemul@parallels.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 parent ca2b1a5 commit 81e9d6f

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

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)