From: Jim Warner Date: Sun, 17 Apr 2016 05:00:00 +0000 (-0500) Subject: library: correct the procps_pid_length() +1 distortion X-Git-Tag: v4.0.0~947 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b4d21c74ac8b5514bc3619d534858d2b48879bb1;p=procps-ng library: correct the procps_pid_length() +1 distortion Unfortunately, reading that '/proc/sys/kernel/pid_max' file returns a newline, which we will now account for. [ also, we should use the existing dedicated buffer ] Reference(s): . original 'procps_pid_length' introduction commit ccb6ae8de14b0cde25b84369ef995bcd69cbf7b6 Signed-off-by: Jim Warner --- diff --git a/proc/sysinfo.c b/proc/sysinfo.c index 0cd8759f..2189433b 100644 --- a/proc/sysinfo.c +++ b/proc/sysinfo.c @@ -197,8 +197,10 @@ PROCPS_EXPORT unsigned int procps_pid_length(void) pid_length = DEFAULT_PID_LENGTH; if ((fp = fopen(PROCFS_PID_MAX, "r")) != NULL) { - if (fgets(buf, 24, fp) != NULL) { - pid_length = strlen(buf); + if (fgets(pidbuf, sizeof(pidbuf), fp) != NULL) { + pid_length = strlen(pidbuf); + if (pidbuf[pid_length-1] == '\n') + --pid_length; } fclose(fp); }