diff options
author | Craig Small <csmall@enc.com.au> | 2014-05-22 21:56:42 +1000 |
---|---|---|
committer | Craig Small <csmall@enc.com.au> | 2014-05-22 21:56:42 +1000 |
commit | 62e2d2d88e471390641bdb686a42598edddb45ab (patch) | |
tree | 345d91342789e54c18ea3a1a844bb153af7d211d | |
parent | 7e6abc85011baedd81ceda824921357ac175f57e (diff) |
Fix some segfaults due to freeing too early
-rw-r--r-- | src/killall.c | 3 | ||||
-rw-r--r-- | src/prtstat.c | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/src/killall.c b/src/killall.c index b1a6d18..1b8e878 100644 --- a/src/killall.c +++ b/src/killall.c @@ -438,7 +438,6 @@ kill_all (int signal, int names, char **namelist, struct passwd *pwent) break; } } - free(command_buf); (void) fclose(file); if (exact && !okay) { @@ -529,7 +528,6 @@ kill_all (int signal, int names, char **namelist, struct passwd *pwent) found_name = j; break; } - free(reglist); free(name_len); if (names && found_name==-1) @@ -571,6 +569,7 @@ kill_all (int signal, int names, char **namelist, struct passwd *pwent) fprintf (stderr, "%s(%d): %s\n", got_long ? command : comm, id, strerror (errno)); } + free(reglist); free(pgids); if (!quiet) for (i = 0; i < names; i++) diff --git a/src/prtstat.c b/src/prtstat.c index 0a6ace4..fee5f61 100644 --- a/src/prtstat.c +++ b/src/prtstat.c @@ -214,7 +214,7 @@ static void print_stat(const int pid, const opt_type options) char *bptr; FILE *fp; - struct proc_info *pr; + struct proc_info *pr = NULL; if ( (asprintf(&pathname, "/proc/%d/stat",(int)pid)) < 0) { perror(_("asprintf in print_stat failed.\n")); |