X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fkillall.c;h=a6ff50a5a4a56fdcdcbbedac17ecfc3d23d2f6c7;hb=609c3029076da1ba423673161e5d0fc82ccca6b6;hp=a7828dc0477e8b6d5d3b2e3f6f17a9c53820904d;hpb=0bee65f0622c4faa8ac8ae771cc0c8a936dfa284;p=elogind.git diff --git a/src/core/killall.c b/src/core/killall.c index a7828dc04..a6ff50a5a 100644 --- a/src/core/killall.c +++ b/src/core/killall.c @@ -33,7 +33,8 @@ static bool ignore_proc(pid_t pid) { _cleanup_fclose_ FILE *f = NULL; - char c, *p; + char c; + const char *p; size_t count; uid_t uid; int r; @@ -167,15 +168,15 @@ 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 %lu (%s).", (unsigned long) pid, strna(s)); + log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s)); } if (kill(pid, sig) >= 0) { if (pids) - set_put(pids, ULONG_TO_PTR((unsigned long) pid)); + set_put(pids, ULONG_TO_PTR(pid)); } else if (errno != ENOENT) log_warning("Could not kill %d: %m", pid); @@ -199,12 +200,12 @@ static int killall(int sig, Set *pids, bool send_sighup) { return set_size(pids); } -void broadcast_signal(int sig, bool send_sighup, bool wait_for_exit) { +void broadcast_signal(int sig, bool wait_for_exit, bool send_sighup) { sigset_t mask, oldmask; - Set *pids = NULL; + _cleanup_set_free_ Set *pids = NULL; if (wait_for_exit) - pids = set_new(trivial_hash_func, trivial_compare_func); + pids = set_new(NULL); assert_se(sigemptyset(&mask) == 0); assert_se(sigaddset(&mask, SIGCHLD) == 0); @@ -222,6 +223,4 @@ void broadcast_signal(int sig, bool send_sighup, bool wait_for_exit) { wait_for_children(pids, &mask); assert_se(sigprocmask(SIG_SETMASK, &oldmask, NULL) == 0); - - set_free(pids); }