[Devel] [PATCH 01/13] fs: exec_mmap() arg corrected
Alexander Mikhalitsyn
alexander.mikhalitsyn at virtuozzo.com
Wed Apr 14 10:44:46 MSK 2021
From: Konstantin Khorenko <khorenko at virtuozzo.com>
---
VZ 8 rebase part https://jira.sw.ru/browse/PSBM-127782
Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalitsyn at virtuozzo.com>
Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
---
fs/exec.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/fs/exec.c b/fs/exec.c
index c036db0323e0..dfaedb7323bb 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1003,10 +1003,10 @@ ssize_t read_code(struct file *file, unsigned long addr, loff_t pos, size_t len)
}
EXPORT_SYMBOL(read_code);
-static int exec_mmap(struct mm_struct *mm)
+static int exec_mmap(struct linux_binprm *bprm)
{
struct task_struct *tsk;
- struct mm_struct *old_mm, *active_mm;
+ struct mm_struct *old_mm, *active_mm, *mm;
/* Notify parent that we're no longer interested in the old VM */
tsk = current;
@@ -1028,6 +1028,7 @@ static int exec_mmap(struct mm_struct *mm)
}
}
+ mm = bprm->mm;
mm->vps_dumpable = VD_PTRACE_COREDUMP;
task_lock(tsk);
active_mm = tsk->active_mm;
@@ -1038,6 +1039,8 @@ static int exec_mmap(struct mm_struct *mm)
tsk->mm->vmacache_seqnum = 0;
vmacache_flush(tsk);
task_unlock(tsk);
+ bprm->mm = NULL; /* We're using it now */
+
if (old_mm) {
up_read(&old_mm->mmap_sem);
BUG_ON(active_mm != old_mm);
@@ -1276,18 +1279,10 @@ int flush_old_exec(struct linux_binprm * bprm)
* Release all of the old mmap stuff
*/
acct_arg_size(bprm, 0);
- retval = exec_mmap(bprm->mm);
+ retval = exec_mmap(bprm);
if (retval)
goto out;
- /*
- * After clearing bprm->mm (to mark that current is using the
- * prepared mm now), we have nothing left of the original
- * process. If anything from here on returns an error, the check
- * in search_binary_handler() will SEGV current.
- */
- bprm->mm = NULL;
-
set_fs(USER_DS);
current->flags &= ~(PF_RANDOMIZE | PF_FORKNOEXEC | PF_KTHREAD |
PF_NOFREEZE | PF_NO_SETAFFINITY);
--
2.28.0
More information about the Devel
mailing list