procps/proc
Jaromir Capik ae9676a337 library: skip replacement of trailing '\0' in read_unvectored()
Under some circumstances the ksh shell doesn't fork new processes
when executing scripts and the script is interpreted by the
parent process. That makes the execution faster, but it means
ksh needs to reuse the /proc/PID/cmdline for the new script name
and arguments while the file length needs to stay untouched.
The fork is skipped only when the new cmdline is shorter than
the parent's cmdline and the rest of the file is filled
with '\0'. This is perfectly ok until we try to read the cmdline
of such process. As the read_unvectored() function replaces
all zeros with chosen separator, these trailing zeros are replaced
with spaces in case of the ps tool. Consequently it appends
multiple spaces at the end of the arguments string even when these
zeros do not represent any separators and therefore shouldn't
be replaced.
With this commit the read_unvectored() function skips the
replacement of trailing zeros and separates valid content only.

Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1057600
2014-01-24 18:32:20 +01:00
..
alloc.c pmap: use correct types for memory allocation 2012-11-06 22:22:11 +11:00
alloc.h pmap: use correct types for memory allocation 2012-11-06 22:22:11 +11:00
COPYING miscellaneous: clean up trailing whitespace once again 2013-04-07 18:05:01 +10:00
devname.c miscellaneous: clean up trailing whitespace throughout 2013-03-14 12:36:47 +01:00
devname.h Change restrict to __restrict in public includes 2012-01-09 21:44:51 +11:00
escape.c miscellaneous: clean up trailing whitespace once again 2013-04-07 18:05:01 +10:00
escape.h Change restrict to __restrict in public includes 2012-01-09 21:44:51 +11:00
ksym.c miscellaneous: clean up trailing whitespace throughout 2013-03-14 12:36:47 +01:00
libprocps.pc.in Renaming libprocfs to libprocps 2011-12-23 09:18:43 +11:00
libprocps.sym procps: add support for linux namespaces 2013-04-16 15:05:21 -04:00
Makefile.am Update the library version to 3:0:0 2013-12-03 22:16:18 +11:00
procps.h Two new options for pmap, -X and -XX 2012-09-27 22:08:04 +10:00
pwcache.c docs: clarification to license headers in files 2012-03-03 18:41:11 +11:00
pwcache.h better handling of long usernames 2004-07-20 23:31:12 +00:00
readproc.c library: skip replacement of trailing '\0' in read_unvectored() 2014-01-24 18:32:20 +01:00
readproc.h library: normalize recently added namespaces interface 2013-11-25 20:57:32 +11:00
sig.c docs: clarification to license headers in files 2012-03-03 18:41:11 +11:00
sig.h Change restrict to __restrict in public includes 2012-01-09 21:44:51 +11:00
slab.c miscellaneous: clean up trailing whitespace once again 2013-04-07 18:05:01 +10:00
slab.h Increase slab name from 64 to 128 characters 2012-06-26 22:01:42 +10:00
sysinfo.c Fix integer overflow in getstat() 2013-09-11 21:57:10 +10:00
sysinfo.h Change restrict to __restrict in public includes 2012-01-09 21:44:51 +11:00
version.c miscellaneous: clean up trailing whitespace once again 2013-04-07 18:05:01 +10:00
version.h name change: procps -> procps-ng 2011-06-04 20:50:12 +02:00
wchan.h Change restrict to __restrict in public includes 2012-01-09 21:44:51 +11:00
whattime.c library: fixing uninitialized variable 'pos' in whattime.c 2014-01-02 18:21:31 +01:00
whattime.h Add -p|--pretty option to uptime(1) for pretty output. 2012-02-22 10:35:12 -05:00