/proc/$PID/cmdline: fixup empty ARGV case
authorAlexey Dobriyan <adobriyan@gmail.com>
Fri, 17 Jul 2015 23:24:09 +0000 (16:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 17 Jul 2015 23:39:54 +0000 (16:39 -0700)
commit3581d458c39bc5e58ceeeaf51796625bc978d2eb
tree4a996d189d715782dc31a2c7ad7e12de32b7de77
parentc9d120b0b2b5069cb2ae62f8eac0cef31c8544be
/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>
fs/proc/base.c