mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 02:19:51 +00:00
/proc/$PID/cmdline: fixup empty ARGV case
/proc/*/cmdline code checks if it should look at ENVP area by checking last byte of ARGV area: rv = access_remote_vm(mm, arg_end - 1, &c, 1, 0); if (rv <= 0) goto out_free_page; If ARGV is somehow made empty (by doing execve(..., NULL, ...) or manually setting ->arg_start and ->arg_end to equal values), the decision will be based on byte which doesn't even belong to ARGV/ENVP. So, quickly check if ARGV area is empty and report 0 to match previous behaviour. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
c9d120b0b2
commit
3581d458c3
1 changed files with 5 additions and 0 deletions
|
@ -243,6 +243,11 @@ static ssize_t proc_pid_cmdline_read(struct file *file, char __user *buf,
|
||||||
len1 = arg_end - arg_start;
|
len1 = arg_end - arg_start;
|
||||||
len2 = env_end - env_start;
|
len2 = env_end - env_start;
|
||||||
|
|
||||||
|
/* Empty ARGV. */
|
||||||
|
if (len1 == 0) {
|
||||||
|
rv = 0;
|
||||||
|
goto out_free_page;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Inherently racy -- command line shares address space
|
* Inherently racy -- command line shares address space
|
||||||
* with code and data.
|
* with code and data.
|
||||||
|
|
Loading…
Reference in a new issue