take security_mmap_file() outside of ->mmap_sem
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -1036,6 +1036,10 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
|
||||
sfd->file = shp->shm_file;
|
||||
sfd->vm_ops = NULL;
|
||||
|
||||
err = security_mmap_file(file, prot, flags);
|
||||
if (err)
|
||||
goto out_fput;
|
||||
|
||||
down_write(¤t->mm->mmap_sem);
|
||||
if (addr && !(shmflg & SHM_REMAP)) {
|
||||
err = -EINVAL;
|
||||
@@ -1058,6 +1062,7 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
|
||||
invalid:
|
||||
up_write(¤t->mm->mmap_sem);
|
||||
|
||||
out_fput:
|
||||
fput(file);
|
||||
|
||||
out_nattch:
|
||||
|
Reference in New Issue
Block a user