summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Henriksson <andreas@fatal.se>2014-06-13 18:48:19 +0200
committerTom Gundersen <teg@jklm.no>2014-06-13 19:00:13 +0200
commit3e09eb5c83e56bc0184bd9d9c44f76047464f77c (patch)
tree2ad78567921f95a52e52246e1548d8f47c23d608
parent8186d9dda0d3f8a853afe6fdbd605f42151fe165 (diff)
core: fix invalid free() in killall()
static int killall(....) in ./src/core/killall.c tries to get "s" initialized by calling get_process_comm(...) which calls read_one_line_file(...) which if it fails will mean it is left uninitialized. It is then used in argument to strna(s) call where it is dereferenced(!), in addition to nothing else initializing it before the scope it is in finishes.
-rw-r--r--src/core/killall.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/killall.c b/src/core/killall.c
index 57ed41c5af..eab48f7dca 100644
--- a/src/core/killall.c
+++ b/src/core/killall.c
@@ -168,7 +168,7 @@ static int killall(int sig, Set *pids, bool send_sighup) {
continue;
if (sig == SIGKILL) {
- _cleanup_free_ char *s;
+ _cleanup_free_ char *s = NULL;
get_process_comm(pid, &s);
log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s));