From 962c6a5606a3e9f0bf2fc669eec3b7fc56471137 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 3 May 2018 16:38:57 +0900 Subject: [PATCH] util: rename signal_from_string_try_harder() to signal_from_string() Also this makes the new `signal_from_string()` function reject e.g, `SIG3` or `SIG+5`. --- src/basic/signal-util.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/basic/signal-util.c b/src/basic/signal-util.c index bf4816fd6..5bd5c71ce 100644 --- a/src/basic/signal-util.c +++ b/src/basic/signal-util.c @@ -234,11 +234,7 @@ int signal_from_string(const char *s) { const char *p; int signo, r; - /* Check that the input is a signal name. */ - signo = __signal_from_string(s); - if (signo > 0) - return signo; - + /* Check that the input is a signal number. */ if (safe_atoi(s, &signo) >= 0) { if (SIGNAL_VALID(signo)) return signo; @@ -246,6 +242,15 @@ int signal_from_string(const char *s) { return -ERANGE; } + /* Drop "SIG" prefix. */ + if (startswith(s, "SIG")) + s += 3; + + /* Check that the input is a signal name. */ + signo = __signal_from_string(s); + if (signo > 0) + return signo; + /* Check that the input is RTMIN or * RTMIN+n (0 <= n <= SIGRTMAX-SIGRTMIN). */ p = startswith(s, "RTMIN"); @@ -287,17 +292,6 @@ int signal_from_string(const char *s) { return -EINVAL; } -int signal_from_string_try_harder(const char *s) { - int signo; - assert(s); - - signo = signal_from_string(s); - if (signo <= 0) - if (startswith(s, "SIG")) - return signal_from_string(s+3); - - return signo; -} #if 0 /// UNNEEDED by elogind void nop_signal_handler(int sig) { -- 2.30.2