diff options
author | Leah Neukirchen <leah@vuxu.org> | 2018-09-17 12:55:22 +0200 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2018-09-17 12:55:22 +0200 |
commit | a2031e792e57e5201afeeda9de0cb7f9a7bea7aa (patch) | |
tree | 6d4fb37bc89ece5498866170ae6c3d4953c50a86 /pwait.c | |
parent | 8d40ea5b6d5cbfb7558a5158b37ddec49dd2c4f6 (diff) | |
download | extrace-a2031e792e57e5201afeeda9de0cb7f9a7bea7aa.tar.gz extrace-a2031e792e57e5201afeeda9de0cb7f9a7bea7aa.tar.xz extrace-a2031e792e57e5201afeeda9de0cb7f9a7bea7aa.zip |
pwait: don't store pid 0 for invalid pids
Diffstat (limited to 'pwait.c')
-rw-r--r-- | pwait.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/pwait.c b/pwait.c index fabbd7f..15b4904 100644 --- a/pwait.c +++ b/pwait.c @@ -146,7 +146,7 @@ main(int argc, char *argv[]) enum proc_cn_mcast_op *mcop_msg; size_t recv_len = 0; int opt; - int n; + int n, m; pid_t *pids; pid_t pid; char *end; @@ -177,14 +177,14 @@ usage: exit(1); } - for (n = 0; n < argc; n++) { + for (n = m = 0; n < argc; n++) { errno = 0; pid = strtol(argv[n], &end, 10); if (pid < 0 || *end != '\0' || errno != 0) { fprintf(stderr, "%s: bad process id\n", argv[n]); continue; } - pids[n] = pid; + pids[m++] = pid; } sk_nl = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR); @@ -261,7 +261,7 @@ usage: pid_t pid = ev->event_data.exit.process_pid; seen = 0; - for (n = 0; n < argc; n++) + for (n = 0; n < m; n++) if (pids[n] == pid) { if (verbose && !seen) display(pid, status); @@ -280,7 +280,7 @@ usage: } quit = 1; - for (n = 0; n < argc; n++) + for (n = 0; n < m; n++) if (pids[n] != 0) quit = 0; } |