From: Olaf Kirch We received a bug report that /proc/PID/cmdline only shows argv[0] if the total length of all arguments exceeds PAGE_SIZE. The problem is that proc_pid_cmdline checks for the presence of a NUL byte at the end of the args list, and assumes that the application did a setproctitle if there's any other character. OTOH proc_pid_cmdline will read just the first PAGE_SIZE worth of arguments at most, and if you have more arguments, it's quite likely that there won't be a NUL byte at offset PAGE_SIZE-1. The attached patch fixes this. Signed-off-by: Andrew Morton --- 25-akpm/fs/proc/base.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN fs/proc/base.c~proc-pid-cmdline-truncates-arguments-early fs/proc/base.c --- 25/fs/proc/base.c~proc-pid-cmdline-truncates-arguments-early Wed Aug 18 17:12:31 2004 +++ 25-akpm/fs/proc/base.c Wed Aug 18 17:12:31 2004 @@ -352,7 +352,7 @@ static int proc_pid_cmdline(struct task_ // If the nul at the end of args has been overwritten, then // assume application is using setproctitle(3). - if (res > 0 && buffer[res-1] != '\0') { + if (res > 0 && buffer[res-1] != '\0' && len < PAGE_SIZE) { len = strnlen(buffer, res); if (len < res) { res = len; _