support: Fix support_process_state_wait path size calculation

Use INT_STRLEN_BOUND to proper get the maximum pid_t size.  Also
fix the wrong calculation (the 3 should multiply the sizeof (pid_t)).

Checked on x86_64-linux-gnu.
This commit is contained in:
Adhemerval Zanella 2022-03-10 16:49:08 -03:00
parent 2a16484a75
commit 0374b487a7

View File

@ -21,6 +21,7 @@
#include <string.h>
#include <array_length.h>
#include <intprops.h>
#include <support/process_state.h>
#include <support/xstdio.h>
@ -49,7 +50,7 @@ support_process_state_wait (pid_t pid, enum support_process_state state)
{ support_process_state_parked, 'P' },
};
char spath[sizeof ("/proc/" + 3) * sizeof (pid_t) + sizeof ("/status") + 1];
char spath[sizeof ("/proc/") + INT_STRLEN_BOUND (pid_t) + sizeof ("/status") + 1];
snprintf (spath, sizeof (spath), "/proc/%i/status", pid);
FILE *fstatus = xfopen (spath, "r");