From 250a6ce38605fe172541fb75e8d64132f2ec38d4 Mon Sep 17 00:00:00 2001 From: Andreas Henriksson Date: Fri, 13 Jun 2014 18:48:19 +0200 Subject: [PATCH] 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. (cherry-picked from 3e09eb5c83e56bc0184bd9d9c44f76047464f77c) Resolves: #1147524 --- src/core/killall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/killall.c b/src/core/killall.c index e395050..967dac0 100644 --- a/src/core/killall.c +++ b/src/core/killall.c @@ -167,7 +167,7 @@ static int killall(int sig, Set *pids) { continue; if (sig == SIGKILL) { - _cleanup_free_ char *s; + _cleanup_free_ char *s = NULL; get_process_comm(pid, &s); log_notice("Sending SIGKILL to PID %lu (%s).", (unsigned long) pid, strna(s));