>From 9d873110e29a6f6fb5c4932164e8ce5ad6ad0668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Sat, 23 Feb 2019 22:11:08 -0800 Subject: [PATCH] env: --default fixes Process the same signals as kill -l Output whether action failed or not Don't run sigaction(..set..) if get failed --- src/env.c | 48 +++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/env.c b/src/env.c index 6c20ac4..a601538 100644 --- a/src/env.c +++ b/src/env.c @@ -572,13 +572,13 @@ parse_signal_params (const char* optarg, bool set_default) char *opt_sig; char *optarg_writable; - if (!optarg) + if (! optarg) { /* without an argument, reset all signals. Some signals cannot be set to ignore or default (e.g., SIGKILL, SIGSTOP on most OSes, and SIGCONT on AIX.) - so ignore errors. */ for (int i = 0 ; i < SIGNUM_BOUND; ++i) - if (sig2str (i, signame) == 0) + if (sig2str (i + 1, signame) == 0) signals[i] = set_default ? DEFAULT_NOERR : IGNORE_NOERR; return; } @@ -603,38 +603,44 @@ parse_signal_params (const char* optarg, bool set_default) static void reset_signal_handlers (void) { - for (int i=0; i