From unknown Fri Jun 20 07:10:18 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#68708 <68708@debbugs.gnu.org> To: bug#68708 <68708@debbugs.gnu.org> Subject: Status: [PATCH] env,kill: Handle unnamed signals Reply-To: bug#68708 <68708@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:10:18 +0000 retitle 68708 [PATCH] env,kill: Handle unnamed signals reassign 68708 coreutils submitter 68708 Grisha Levit severity 68708 normal tag 68708 notabug patch thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 24 23:34:32 2024 Received: (at submit) by debbugs.gnu.org; 25 Jan 2024 04:34:32 +0000 Received: from localhost ([127.0.0.1]:47022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSrRf-0002B3-J9 for submit@debbugs.gnu.org; Wed, 24 Jan 2024 23:34:32 -0500 Received: from lists.gnu.org ([2001:470:142::17]:38060) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSk3P-0003Dx-Q5 for submit@debbugs.gnu.org; Wed, 24 Jan 2024 15:41:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSk3C-0004pp-Vg for bug-coreutils@gnu.org; Wed, 24 Jan 2024 15:40:47 -0500 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rSk3A-0007r5-9K for bug-coreutils@gnu.org; Wed, 24 Jan 2024 15:40:46 -0500 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-6e0df9aa43dso4543532a34.0 for ; Wed, 24 Jan 2024 12:40:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706128843; x=1706733643; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=CYfv2DHvIF3pVpEX17GCDrJ/skw8Hf/+phQWNH/b8MQ=; b=a8dKug9M/9Oz0acAdNKnytMM0NVA9wMYYMg4keJIp7BcJAuND8iYcqHVnaphLQRbr1 V+K6bLXgTLxeb+re0U4dnfUkNwhFVEbin1+R8xwkkpPj73rsSNNSrjK8IssRjmB5n2E+ XVi74tAsFis3qvhtk1MHcv01psFPC7MzByHKplK3TGkeN84yDAEKKSTVRQw/314+uGPB PqC3RBJiqK+JlC16dCKEgw6Pmtv+8mQjzlqsQFxOeyU7ft7tITiyCel2YPhGlJec+1Cy fX81vUTFaT246fH8vs6OFxhl6uYMG8VGWzZVgMRg++DEw3baqbYTo3H6hi2lMGN1PQvN dHkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706128843; x=1706733643; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=CYfv2DHvIF3pVpEX17GCDrJ/skw8Hf/+phQWNH/b8MQ=; b=Fhs1RH2N7cagulCncaozXse8OoR44XJYYCwC6y7+eBBqtIG86cV6h12sHXReVJq6TO yQY0cXv/NneLSvj6hiffMP+F52V+bVpGoYnxkhX0MmChCCHR3DplQPbKHG3ksfJ6irTh YPdSomfNATdwuujJ+nm3z5pWoTXdN8XnDH3X5RtWkhfV0WS77BKi6HMRfJyVAcZIODes 6Gsu+PXHvAAikwY1gE0B+1OXX1AzV718tqmOAaDCtKoJ2wzbFGpa7d0SmiSuZtmi+IZq sFMGpufcXCqIO74zt7Tdlp3jLnM9O39VP+xcNSsbz3VMsqNqIxlK3VR9kNwhTfMU6Hbq mpjA== X-Gm-Message-State: AOJu0YzyOqDHL9f4cLgKTk5ouGDOdUBaIl11z0Eh2fq4UE3jt/QHUCUF IVgcL50pBWQ9N7EFTCB63qQzw5K4vVqetv3ZuiV02h8gUx+sK9ILo4XK79IO1js4WpR028+cpA4 rsVODgGIp/HOEPFuvHTfjfp3pTT0mq2MzkFIOTQ== X-Google-Smtp-Source: AGHT+IGTe87Gi0hAyd5TtdUo+vyf1c1VqIo895K/krjfa2MKrxV9Bowkdzzgfns6HE35D/QFVeGBNA/ksZNz4IBb8YE= X-Received: by 2002:a05:6358:4412:b0:175:4d29:ac23 with SMTP id z18-20020a056358441200b001754d29ac23mr164446rwc.26.1706128842186; Wed, 24 Jan 2024 12:40:42 -0800 (PST) MIME-Version: 1.0 From: Grisha Levit Date: Wed, 24 Jan 2024 15:40:31 -0500 Message-ID: Subject: [PATCH] env,kill: Handle unnamed signals To: bug-coreutils@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=grishalevit@gmail.com; helo=mail-ot1-x333.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 24 Jan 2024 23:34:29 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Android reserves [1] some realtime signals and redefines [2] SIGRTMIN, leaving a gap between the signals that have SIG* constants defined in signal.h and SIGRTMIN. When passed such a signal number, gnulib sig2str returns -1 and leaves its signame argument unchanged. The signal listing in env ends up reusing the name of the last printed valid signal: $ env --list-signal-handling true HUP ( 1): IGNORE HUP (32): BLOCK HUP (38): IGNORE ..and the corresponding signal numbers are rejected as operands for the env, kill, and timeout commands. This patch removes the requirement that sig2str returns 0 for a signal number associated with an operand, and allows unnamed signals to be in the sets `env' attempts to manipulate when a --*-signal option is used with no argument. This does leave the possibility of numbers lower than SIGNUM_BOUND that are not valid signals, but I'm not sure that's really a problem for the existing code paths (if it is, adding checks for sigset_t manipulations would probably be enough). To be on the safe side, added a check to report kill(3) EINVAL as a bad signo (rather than always blaming the pid). This does not change the default list printed with `kill -l'. When a name is to be printed, the signal number associated with an unnamed signal is used. [1]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/platform/bionic/reserved_signals.h [2]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/include/signal.h;l=51 * src/operand2sig.c (operand2sig): Drop signame argument, accept all signal numbers <= SIGNUM_BOUND. All callers updated. * src/env.c (parse_signal_action_params, reset_signal_handlers) (parse_block_signal_params, set_signal_proc_mask) (list_signal_handling): Accept all signal numbers <= SIGNUM_BOUND, use signal number for printing if necessary. * src/kill.c (list_signals, main): Likewise. (send_signals): Check errno from kill(3) for bad signo. * src/timeout.c (main): Update operand2sig call. * tests/misc/kill.sh: Test listing all signal numbers. --- src/env.c | 18 +++++++++--------- src/kill.c | 29 ++++++++++++++++------------- src/operand2sig.c | 8 ++++---- src/operand2sig.h | 2 +- src/timeout.c | 3 +-- tests/misc/kill.sh | 8 ++++++++ 6 files changed, 39 insertions(+), 29 deletions(-) diff --git a/src/env.c b/src/env.c index ffe896039..e40767610 100644 --- a/src/env.c +++ b/src/env.c @@ -538,7 +538,6 @@ parse_split_string (char const *str, int *orig_optind, static void parse_signal_action_params (char const *optarg, bool set_default) { - char signame[SIG2STR_MAX]; char *opt_sig; char *optarg_writable; @@ -548,8 +547,7 @@ parse_signal_action_params (char const *optarg, bool set_default) 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 = 1 ; i <= SIGNUM_BOUND; i++) - if (sig2str (i, signame) == 0) - signals[i] = set_default ? DEFAULT_NOERR : IGNORE_NOERR; + signals[i] = set_default ? DEFAULT_NOERR : IGNORE_NOERR; return; } @@ -558,7 +556,7 @@ parse_signal_action_params (char const *optarg, bool set_default) opt_sig = strtok (optarg_writable, ","); while (opt_sig) { - int signum = operand2sig (opt_sig, signame); + int signum = operand2sig (opt_sig); /* operand2sig accepts signal 0 (EXIT) - but we reject it. */ if (signum == 0) error (0, 0, _("%s: invalid signal"), quote (opt_sig)); @@ -607,7 +605,8 @@ reset_signal_handlers (void) if (dev_debug) { char signame[SIG2STR_MAX]; - sig2str (i, signame); + if (sig2str (i, signame) != 0) + snprintf (signame, sizeof signame, "%d", i); devmsg ("Reset signal %s (%d) to %s%s\n", signame, i, set_to_default ? "DEFAULT" : "IGNORE", @@ -620,7 +619,6 @@ reset_signal_handlers (void) static void parse_block_signal_params (char const *optarg, bool block) { - char signame[SIG2STR_MAX]; char *opt_sig; char *optarg_writable; @@ -647,7 +645,7 @@ parse_block_signal_params (char const *optarg, bool block) opt_sig = strtok (optarg_writable, ","); while (opt_sig) { - int signum = operand2sig (opt_sig, signame); + int signum = operand2sig (opt_sig); /* operand2sig accepts signal 0 (EXIT) - but we reject it. */ if (signum == 0) error (0, 0, _("%s: invalid signal"), quote (opt_sig)); @@ -695,7 +693,8 @@ set_signal_proc_mask (void) if (dev_debug && debug_act) { char signame[SIG2STR_MAX]; - sig2str (i, signame); + if (sig2str (i, signame) != 0) + snprintf (signame, sizeof signame, "%d", i); devmsg ("signal %s (%d) mask set to %s\n", signame, i, debug_act); } @@ -728,7 +727,8 @@ list_signal_handling (void) if (! *ignored && ! *blocked) continue; - sig2str (i, signame); + if (sig2str (i, signame) != 0) + snprintf (signame, sizeof signame, "%d", i); fprintf (stderr, "%-10s (%2d): %s%s%s\n", signame, i, blocked, connect, ignored); } diff --git a/src/kill.c b/src/kill.c index 9c8b6c191..f386c9cbc 100644 --- a/src/kill.c +++ b/src/kill.c @@ -131,11 +131,15 @@ list_signals (bool table, char *const *argv) if (argv) for (; *argv; argv++) { - signum = operand2sig (*argv, signame); + signum = operand2sig (*argv); if (signum < 0) status = EXIT_FAILURE; else - print_table_row (num_width, signum, name_width, signame); + { + if (sig2str (signum, signame) != 0) + snprintf (signame, sizeof signame, "%d", signum); + print_table_row (num_width, signum, name_width, signame); + } } else for (signum = 1; signum <= SIGNUM_BOUND; signum++) @@ -147,16 +151,13 @@ list_signals (bool table, char *const *argv) if (argv) for (; *argv; argv++) { - signum = operand2sig (*argv, signame); + signum = operand2sig (*argv); if (signum < 0) status = EXIT_FAILURE; + else if (ISDIGIT (**argv) && sig2str (signum, signame) == 0) + puts (signame); else - { - if (ISDIGIT (**argv)) - puts (signame); - else - printf ("%d\n", signum); - } + printf ("%d\n", signum); } else for (signum = 1; signum <= SIGNUM_BOUND; signum++) @@ -188,9 +189,12 @@ send_signals (int signum, char *const *argv) error (0, 0, _("%s: invalid process id"), quote (arg)); status = EXIT_FAILURE; } - else if (kill (pid, signum) != 0) + else if (errno = 0, kill (pid, signum) != 0) { - error (0, errno, "%s", quote (arg)); + if (errno == EINVAL) + error (0, errno, "%d", signum); + else + error (0, errno, "%s", quote (arg)); status = EXIT_FAILURE; } } @@ -206,7 +210,6 @@ main (int argc, char **argv) bool list = false; bool table = false; int signum = -1; - char signame[SIG2STR_MAX]; initialize_main (&argc, &argv); set_program_name (argv[0]); @@ -251,7 +254,7 @@ main (int argc, char **argv) error (0, 0, _("%s: multiple signals specified"), quote (optarg)); usage (EXIT_FAILURE); } - signum = operand2sig (optarg, signame); + signum = operand2sig (optarg); if (signum < 0) usage (EXIT_FAILURE); break; diff --git a/src/operand2sig.c b/src/operand2sig.c index 2a2563c62..b46cb1bed 100644 --- a/src/operand2sig.c +++ b/src/operand2sig.c @@ -18,8 +18,8 @@ FIXME: Move this to gnulib/str2sig.c */ -/* Convert OPERAND to a signal number with printable representation SIGNAME. - Return the signal number, or -1 if unsuccessful. */ +/* Convert OPERAND to a signal number. Return the signal number, or -1 if + unsuccessful. */ #include #include @@ -32,7 +32,7 @@ #include "operand2sig.h" extern int -operand2sig (char const *operand, char *signame) +operand2sig (char const *operand) { int signum; @@ -82,7 +82,7 @@ operand2sig (char const *operand, char *signame) free (upcased); } - if (signum < 0 || sig2str (signum, signame) != 0) + if (0 > signum || signum > SIGNUM_BOUND) { error (0, 0, _("%s: invalid signal"), quote (operand)); return -1; diff --git a/src/operand2sig.h b/src/operand2sig.h index e46689e7b..3bc551051 100644 --- a/src/operand2sig.h +++ b/src/operand2sig.h @@ -15,5 +15,5 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -extern int operand2sig (char const *operand, char *signame) +extern int operand2sig (char const *operand) _GL_ATTRIBUTE_NONNULL (); diff --git a/src/timeout.c b/src/timeout.c index 85d97c0b5..7d1ea7da6 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -462,7 +462,6 @@ int main (int argc, char **argv) { double timeout; - char signame[SIG2STR_MAX]; int c; initialize_main (&argc, &argv); @@ -483,7 +482,7 @@ main (int argc, char **argv) break; case 's': - term_signal = operand2sig (optarg, signame); + term_signal = operand2sig (optarg); if (term_signal == -1) usage (EXIT_CANCELED); break; diff --git a/tests/misc/kill.sh b/tests/misc/kill.sh index 69679e5a6..79a93de5f 100755 --- a/tests/misc/kill.sh +++ b/tests/misc/kill.sh @@ -60,4 +60,12 @@ returns_ 1 env kill -l -1 || fail=1 returns_ 1 env kill -l -1 0 || fail=1 returns_ 1 env kill -l INVALID TERM || fail=1 +# Verify all signal numbers can be listed +SIG_LAST_STR=$(env kill -l | tail -n1) || framework_failure_ +SIG_LAST_NUM=$(env kill -l -- "$SIG_LAST_STR") || framework_failure_ +SIG_SEQ=$(env seq -- 0 "$SIG_LAST_NUM") || framework_failure_ +test -n "$SIG_SEQ" || framework_failure_ +env kill -l -- $SIG_SEQ || fail=1 +env kill -t -- $SIG_SEQ || fail=1 + Exit $fail -- 2.43.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 25 00:58:55 2024 Received: (at control) by debbugs.gnu.org; 25 Jan 2024 05:58:55 +0000 Received: from localhost ([127.0.0.1]:47101 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSslK-0004cl-Om for submit@debbugs.gnu.org; Thu, 25 Jan 2024 00:58:55 -0500 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]:45515) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSs2Y-0003Mz-Dx for control@debbugs.gnu.org; Thu, 25 Jan 2024 00:12:39 -0500 Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-3bd4e6a7cb0so4091207b6e.3 for ; Wed, 24 Jan 2024 21:12:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706159546; x=1706764346; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=JpLl8WdJAF3LCdvHh8AvjQU1g46IWF0UF6vv1F835bY=; b=JHkRX8hq8yoekH9VPqxji5uMzpsqlCOc6iJ/OuqOBwkVd2PfQKr/aTQW02q4yU098d Tcqfc8hqImKA9nljwhquvAVMjnlAMWPqwLVlB4g3PTDZkTRVJiNtnsXX5spqG+RI0WqN aZm0//5UEIkxjoCO2R5s8crBPbFkMowCp/At6c+r4NXMOMqqaC1p4kxINFpOX99Gl5fA jeI0lm+rdVe4kKkyZAojsBc+9dGIZ+tweoypipbYfWd18cqWa3S8zJe2cqSMlxMqe+JP t7JCDCnZbEG3StTtqiBC1XjCm5lDdS0maMvTXxpm5WKHG0N4/yCHpiR6PzAMo4hPqXHG hGQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706159546; x=1706764346; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=JpLl8WdJAF3LCdvHh8AvjQU1g46IWF0UF6vv1F835bY=; b=PcKJNS2kzJZ6qLMQzS8KCiqZ7DzSKwH0Q8SuhrUFgy7b5OlzTnd3E+9w5W+nLdHYkC m8kBWJ3gbDNFSin/7r57mojiwN+3UhsoFeMabwayu0TOXc9/NPVeLgT4RO9Zj5QDvWxi WHM56Gg4krbARCrwaCaKkZzPFMUiRwMlk/M6AnNKTwlIKYYEx+8TJpuY+EUgpSWYA1av bOBsFCq9FIdut/n/BJ4wPo8Jh4zZq9WDErJhups3+UVOy5/7nc+J5523rlTxXRWwvFc2 ATCn0vzg1Fhkfwy6qL8GTlHVLFmPV0GIAWop/R/d6MKtOhvMlHMlQZZVdcUxTAud5xjy NpEg== X-Gm-Message-State: AOJu0Yz6XtrRigqu3dJwBkj5RncsvN8YSr9lDD2CRAsQQeri6SFULYUh hFCibDrUbZImp6rB7EsveiRaWoZ/Hd+HJC3KMs96BsD+Z12tH4NaurlgtiRvLIxxAkHBZ3R82K7 TW8alw1e0hep2IU77cCbjcq8jt5Tj2aKvqEQgig== X-Google-Smtp-Source: AGHT+IEAWXX4KAtn7q8IMFlvsZzoSlzSS3DLRUrav2dx9r/MbR6F5SIBUp5bxLhB/ibfl3WiPsiv/zuCORf3DVvxlOw= X-Received: by 2002:a05:6808:448b:b0:3bb:ce9d:8eae with SMTP id eq11-20020a056808448b00b003bbce9d8eaemr651451oib.55.1706159546560; Wed, 24 Jan 2024 21:12:26 -0800 (PST) MIME-Version: 1.0 From: Grisha Levit Date: Thu, 25 Jan 2024 00:12:15 -0500 Message-ID: Subject: close 68708 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control X-Mailman-Approved-At: Thu, 25 Jan 2024 00:58:52 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tag 68708 notabug close 68708 quit sorry for the dupe From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 25 09:50:24 2024 Received: (at 68708) by debbugs.gnu.org; 25 Jan 2024 14:50:24 +0000 Received: from localhost ([127.0.0.1]:47694 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rT13f-000282-Sf for submit@debbugs.gnu.org; Thu, 25 Jan 2024 09:50:24 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:58578) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rT13d-00027p-8z for 68708@debbugs.gnu.org; Thu, 25 Jan 2024 09:50:21 -0500 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-40e72a567eeso81227405e9.0 for <68708@debbugs.gnu.org>; Thu, 25 Jan 2024 06:50:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706194209; x=1706799009; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=bb8wHBxkSuCcFtR6/tuDO0BtdcKbGneVYYCpIS55O0Q=; b=MO1dk9JVkAlZH7lw/Pt/agCtW0BqRSTCBOOimNJWau1kTimhAWCd4GfBdQCVVBbj8Z 9FeVJ2eBKjmkryc/ARanEfvrjIBCMg3zeT4qehVsaebrlBDhIv12cFHgHMcpSbmNI2X/ YGyQwIPIQ4rLbIjW2LDeDkzQy8hpaNiMtYQW5w8fqMEWxD6czdwsxyi5i0MZfU8L1HTY 7qlva57TbmKSE322YLGwOVLwVEug5UyeRxDSU4mZl5rZHhmGVbmD48fDdnf9+VMDvsk7 dHR5G1YTGtMyihT0fZwOkeG/7ZVrXzSaVGbcTMvRAE1u7EmgpFjXcvW5NEDzCheIvkHb xCsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706194209; x=1706799009; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bb8wHBxkSuCcFtR6/tuDO0BtdcKbGneVYYCpIS55O0Q=; b=tJdNBS00X+fAjTxPnAQiJcvCEV9uDT1hszGbz2OPYt3EfqRxU4YcT/qWZZXAw/Zg1m uU7RHPnZIabqrED5htzrBsZ6I8g5aZLsLXzwNSfZcFFqSJxcp0UCk75svN/vlAB+60OW RbRdIGHzhoTIkZCNtTE9bB1CKd0vptOqdex42bd/VHLlCalBGK6taWZjskz/uTXiky8u otHjvgYFp9yxAdpPnVGmlimG6SW7yxT4Tv6MUvZB3Ujo2H3JtKCyaS4G++7rbiC74/kj MoiXwhiALfsQZ+PGRt6rMCrxmHyDGck6yS6Gk+QYZVd7ZWnMOBc1J9M525ySSPyp0qp2 8g4g== X-Gm-Message-State: AOJu0YwQrhj8CiqO6t6LAfsDztCywrSqMDKP9iokLX1TFzmmRWNGqpED ujHt3QXpyYG1JSDBxlMPaQHfsrBOg/jR6FTvJXYjq92f3HCoZHvb X-Google-Smtp-Source: AGHT+IGb/ku2S0moBhHfZlq/r1t2o2OyGLHt+Ekk2yYuwGlV6YEw8AhtS98LRCqxgc5NQHsu2bZaWQ== X-Received: by 2002:a05:600c:55d6:b0:40e:b95b:d076 with SMTP id jq22-20020a05600c55d600b0040eb95bd076mr334819wmb.330.1706194209208; Thu, 25 Jan 2024 06:50:09 -0800 (PST) Received: from [192.168.1.20] (86-40-129-3-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.40.129.3]) by smtp.googlemail.com with ESMTPSA id bg42-20020a05600c3caa00b0040e54f15d3dsm2871778wmb.31.2024.01.25.06.50.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 Jan 2024 06:50:08 -0800 (PST) Message-ID: <6a885dbf-504e-2539-ee0f-8d0f45e80fad@draigBrady.com> Date: Thu, 25 Jan 2024 14:50:07 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#68708: [PATCH] env,kill: Handle unnamed signals Content-Language: en-US To: Grisha Levit , 68708@debbugs.gnu.org References: From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 68708 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On 24/01/2024 20:40, Grisha Levit wrote: > Android reserves [1] some realtime signals and redefines [2] SIGRTMIN, > leaving a gap between the signals that have SIG* constants defined in > signal.h and SIGRTMIN. > > When passed such a signal number, gnulib sig2str returns -1 and leaves > its signame argument unchanged. > > The signal listing in env ends up reusing the name of the last printed > valid signal: > > $ env --list-signal-handling true > HUP ( 1): IGNORE > HUP (32): BLOCK > HUP (38): IGNORE > > ..and the corresponding signal numbers are rejected as operands for the > env, kill, and timeout commands. > > This patch removes the requirement that sig2str returns 0 for a signal > number associated with an operand, and allows unnamed signals to be in > the sets `env' attempts to manipulate when a --*-signal option is used > with no argument. > > This does leave the possibility of numbers lower than SIGNUM_BOUND that > are not valid signals, but I'm not sure that's really a problem for the > existing code paths (if it is, adding checks for sigset_t manipulations > would probably be enough). > > To be on the safe side, added a check to report kill(3) EINVAL as a bad > signo (rather than always blaming the pid). > > This does not change the default list printed with `kill -l'. When a > name is to be printed, the signal number associated with an unnamed > signal is used. > > [1]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/platform/bionic/reserved_signals.h > [2]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/include/signal.h;l=51 > This mostly looks good, except: - No need to clear the errno before kill(3). - Better to use SIG%d rather than the bare %d for signal _names_, as we already parse this format thanks! Pádraig From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 25 23:16:59 2024 Received: (at 68708) by debbugs.gnu.org; 26 Jan 2024 04:16:59 +0000 Received: from localhost ([127.0.0.1]:49831 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTDeE-0007f4-KZ for submit@debbugs.gnu.org; Thu, 25 Jan 2024 23:16:59 -0500 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]:47591) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rT5ra-0007yZ-H5 for 68708@debbugs.gnu.org; Thu, 25 Jan 2024 14:58:15 -0500 Received: by mail-qk1-x72b.google.com with SMTP id af79cd13be357-78333ad3a17so569149585a.3 for <68708@debbugs.gnu.org>; Thu, 25 Jan 2024 11:58:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706212682; x=1706817482; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=+rNXp0hBXntEH9hxkfknEJdqdMapDOQbIiO5Y4MOn3c=; b=kfLL8v9db+toektXR0HGmhJYvHxaTR/Kv4yEBmAxQJId01tck/HO2Fi2znUKO9X5+f mAKGGKyRALPAvtht2oujj28X5qvrn13w/66Ab59LbcjKJuTdPU7Pb2oyj/gxM1daCpRl p9U5a/zplQ/BKnT6Xl9G4qh7UEPFNXIRrur+sAA7BXrP8pgZJeshe518f9z7fcEXU2Q8 VtoG47FjKmJpgTdHJCe18l39yMKn/ftPcxIodCPEM+vjyXGPwHJ/Lu/DTF0o3EaSKfQS TIFIKYKfRU85to8hoDeDoAC8o2wvpRKihMvf12A00KicoGXbTT6PmQytAZhZdFGNfzZP T3Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706212682; x=1706817482; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+rNXp0hBXntEH9hxkfknEJdqdMapDOQbIiO5Y4MOn3c=; b=SxzKVV+jucG9oXPnVUqTfrruWianvT32j/iESHQkG5GuAhNZCTuHnt2B+mYC1GG9KQ LO7wAyJuWSCLLXHgo6COiZgTgr1mLS2OJC9BvpvLSq5Mp5H89iYY0A3pgcwF7wJERNo1 Ww5pqd5HSaPWYDWiVdgusNeveyTgL3a7lIuZ543OUSahJlS0yA0oLWFPJcdRjAEtLchb 4CWJExaM2YRiQpFBidMMRALvtomXGVwiANkmiDnVOF9f5L7mTjWfrQxUzoM1zP1rRjaG dvaLE++9cJiBCfINyINN2yPnrQpuQ/jLz82LoHn+H4OTwT5JYvYlAT/vBJ2xXZd92mQ0 ya5w== X-Gm-Message-State: AOJu0YygtBv+L59dtDSmvUqfStIz6DkUxa3WNzNLbcAVtJvLqvZvMdNn Y95TZgSY8rV+6ffF7O54YFKb9vyQhZx3Ooa/mY6O72gslGWnaaE3LlP5iiVBLmc= X-Google-Smtp-Source: AGHT+IFH0qvxia4wkHQjajh6HJHGJJXiL0LWaafVZoldsON0ESoep8z5Y0CM0xT/jEOjaryInAB42g== X-Received: by 2002:a05:620a:22ca:b0:783:8d53:c06 with SMTP id o10-20020a05620a22ca00b007838d530c06mr215231qki.78.1706212682261; Thu, 25 Jan 2024 11:58:02 -0800 (PST) Received: from localhost ([70.18.203.251]) by smtp.gmail.com with UTF8SMTPSA id e5-20020a05620a12c500b007815e176d44sm5383550qkl.64.2024.01.25.11.58.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 Jan 2024 11:58:01 -0800 (PST) From: Grisha Levit To: 68708@debbugs.gnu.org Subject: [PATCH] env,kill: Handle unnamed signals Date: Thu, 25 Jan 2024 14:52:50 -0500 Message-ID: <20240125195728.30862-1-grishalevit@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68708 X-Mailman-Approved-At: Thu, 25 Jan 2024 23:16:54 -0500 Cc: P@draigbrady.com, Grisha Levit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > On Thu, Jan 25, 2024, 09:50 Pádraig Brady wrote: > This mostly looks good, except: > > - No need to clear the errno before kill(3). > - Better to use SIG%d rather than the bare %d for signal _names_, as we already parse this format Makes sense, done below. * src/operand2sig.c (operand2sig): Drop signame argument, accept all signal numbers <= SIGNUM_BOUND. All callers updated. * src/env.c (parse_signal_action_params, reset_signal_handlers) (parse_block_signal_params, set_signal_proc_mask) (list_signal_handling): Accept all signal numbers <= SIGNUM_BOUND, use SIG%d for printing if necessary. * src/kill.c (list_signals, main): Likewise. (send_signals): Check errno from kill(3) for bad signo. * src/timeout.c (main): Update operand2sig call. * tests/misc/kill.sh: Test listing all signal numbers. --- src/env.c | 18 +++++++++--------- src/kill.c | 26 +++++++++++++++++--------- src/operand2sig.c | 8 ++++---- src/operand2sig.h | 2 +- src/timeout.c | 3 +-- tests/misc/kill.sh | 8 ++++++++ 6 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/env.c b/src/env.c index ffe896039..c73a4f70a 100644 --- a/src/env.c +++ b/src/env.c @@ -538,7 +538,6 @@ parse_split_string (char const *str, int *orig_optind, static void parse_signal_action_params (char const *optarg, bool set_default) { - char signame[SIG2STR_MAX]; char *opt_sig; char *optarg_writable; @@ -548,8 +547,7 @@ parse_signal_action_params (char const *optarg, bool set_default) 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 = 1 ; i <= SIGNUM_BOUND; i++) - if (sig2str (i, signame) == 0) - signals[i] = set_default ? DEFAULT_NOERR : IGNORE_NOERR; + signals[i] = set_default ? DEFAULT_NOERR : IGNORE_NOERR; return; } @@ -558,7 +556,7 @@ parse_signal_action_params (char const *optarg, bool set_default) opt_sig = strtok (optarg_writable, ","); while (opt_sig) { - int signum = operand2sig (opt_sig, signame); + int signum = operand2sig (opt_sig); /* operand2sig accepts signal 0 (EXIT) - but we reject it. */ if (signum == 0) error (0, 0, _("%s: invalid signal"), quote (opt_sig)); @@ -607,7 +605,8 @@ reset_signal_handlers (void) if (dev_debug) { char signame[SIG2STR_MAX]; - sig2str (i, signame); + if (sig2str (i, signame) != 0) + snprintf (signame, sizeof signame, "SIG%d", i); devmsg ("Reset signal %s (%d) to %s%s\n", signame, i, set_to_default ? "DEFAULT" : "IGNORE", @@ -620,7 +619,6 @@ reset_signal_handlers (void) static void parse_block_signal_params (char const *optarg, bool block) { - char signame[SIG2STR_MAX]; char *opt_sig; char *optarg_writable; @@ -647,7 +645,7 @@ parse_block_signal_params (char const *optarg, bool block) opt_sig = strtok (optarg_writable, ","); while (opt_sig) { - int signum = operand2sig (opt_sig, signame); + int signum = operand2sig (opt_sig); /* operand2sig accepts signal 0 (EXIT) - but we reject it. */ if (signum == 0) error (0, 0, _("%s: invalid signal"), quote (opt_sig)); @@ -695,7 +693,8 @@ set_signal_proc_mask (void) if (dev_debug && debug_act) { char signame[SIG2STR_MAX]; - sig2str (i, signame); + if (sig2str (i, signame) != 0) + snprintf (signame, sizeof signame, "SIG%d", i); devmsg ("signal %s (%d) mask set to %s\n", signame, i, debug_act); } @@ -728,7 +727,8 @@ list_signal_handling (void) if (! *ignored && ! *blocked) continue; - sig2str (i, signame); + if (sig2str (i, signame) != 0) + snprintf (signame, sizeof signame, "SIG%d", i); fprintf (stderr, "%-10s (%2d): %s%s%s\n", signame, i, blocked, connect, ignored); } diff --git a/src/kill.c b/src/kill.c index 9c8b6c191..d6aeae0b9 100644 --- a/src/kill.c +++ b/src/kill.c @@ -131,11 +131,15 @@ list_signals (bool table, char *const *argv) if (argv) for (; *argv; argv++) { - signum = operand2sig (*argv, signame); + signum = operand2sig (*argv); if (signum < 0) status = EXIT_FAILURE; else - print_table_row (num_width, signum, name_width, signame); + { + if (sig2str (signum, signame) != 0) + snprintf (signame, sizeof signame, "SIG%d", signum); + print_table_row (num_width, signum, name_width, signame); + } } else for (signum = 1; signum <= SIGNUM_BOUND; signum++) @@ -147,16 +151,18 @@ list_signals (bool table, char *const *argv) if (argv) for (; *argv; argv++) { - signum = operand2sig (*argv, signame); + signum = operand2sig (*argv); if (signum < 0) status = EXIT_FAILURE; - else + else if (ISDIGIT (**argv)) { - if (ISDIGIT (**argv)) + if (sig2str (signum, signame) == 0) puts (signame); else - printf ("%d\n", signum); + printf ("SIG%d\n", signum); } + else + printf ("%d\n", signum); } else for (signum = 1; signum <= SIGNUM_BOUND; signum++) @@ -190,7 +196,10 @@ send_signals (int signum, char *const *argv) } else if (kill (pid, signum) != 0) { - error (0, errno, "%s", quote (arg)); + if (errno == EINVAL) + error (0, errno, "%d", signum); + else + error (0, errno, "%s", quote (arg)); status = EXIT_FAILURE; } } @@ -206,7 +215,6 @@ main (int argc, char **argv) bool list = false; bool table = false; int signum = -1; - char signame[SIG2STR_MAX]; initialize_main (&argc, &argv); set_program_name (argv[0]); @@ -251,7 +259,7 @@ main (int argc, char **argv) error (0, 0, _("%s: multiple signals specified"), quote (optarg)); usage (EXIT_FAILURE); } - signum = operand2sig (optarg, signame); + signum = operand2sig (optarg); if (signum < 0) usage (EXIT_FAILURE); break; diff --git a/src/operand2sig.c b/src/operand2sig.c index 2a2563c62..b46cb1bed 100644 --- a/src/operand2sig.c +++ b/src/operand2sig.c @@ -18,8 +18,8 @@ FIXME: Move this to gnulib/str2sig.c */ -/* Convert OPERAND to a signal number with printable representation SIGNAME. - Return the signal number, or -1 if unsuccessful. */ +/* Convert OPERAND to a signal number. Return the signal number, or -1 if + unsuccessful. */ #include #include @@ -32,7 +32,7 @@ #include "operand2sig.h" extern int -operand2sig (char const *operand, char *signame) +operand2sig (char const *operand) { int signum; @@ -82,7 +82,7 @@ operand2sig (char const *operand, char *signame) free (upcased); } - if (signum < 0 || sig2str (signum, signame) != 0) + if (0 > signum || signum > SIGNUM_BOUND) { error (0, 0, _("%s: invalid signal"), quote (operand)); return -1; diff --git a/src/operand2sig.h b/src/operand2sig.h index e46689e7b..3bc551051 100644 --- a/src/operand2sig.h +++ b/src/operand2sig.h @@ -15,5 +15,5 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -extern int operand2sig (char const *operand, char *signame) +extern int operand2sig (char const *operand) _GL_ATTRIBUTE_NONNULL (); diff --git a/src/timeout.c b/src/timeout.c index 85d97c0b5..7d1ea7da6 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -462,7 +462,6 @@ int main (int argc, char **argv) { double timeout; - char signame[SIG2STR_MAX]; int c; initialize_main (&argc, &argv); @@ -483,7 +482,7 @@ main (int argc, char **argv) break; case 's': - term_signal = operand2sig (optarg, signame); + term_signal = operand2sig (optarg); if (term_signal == -1) usage (EXIT_CANCELED); break; diff --git a/tests/misc/kill.sh b/tests/misc/kill.sh index 69679e5a6..79a93de5f 100755 --- a/tests/misc/kill.sh +++ b/tests/misc/kill.sh @@ -60,4 +60,12 @@ returns_ 1 env kill -l -1 || fail=1 returns_ 1 env kill -l -1 0 || fail=1 returns_ 1 env kill -l INVALID TERM || fail=1 +# Verify all signal numbers can be listed +SIG_LAST_STR=$(env kill -l | tail -n1) || framework_failure_ +SIG_LAST_NUM=$(env kill -l -- "$SIG_LAST_STR") || framework_failure_ +SIG_SEQ=$(env seq -- 0 "$SIG_LAST_NUM") || framework_failure_ +test -n "$SIG_SEQ" || framework_failure_ +env kill -l -- $SIG_SEQ || fail=1 +env kill -t -- $SIG_SEQ || fail=1 + Exit $fail -- 2.43.0 From unknown Fri Jun 20 07:10:18 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 23 Feb 2024 12:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 13 15:10:16 2024 Received: (at control) by debbugs.gnu.org; 13 Mar 2024 19:10:16 +0000 Received: from localhost ([127.0.0.1]:47425 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkTzU-00025V-Hr for submit@debbugs.gnu.org; Wed, 13 Mar 2024 15:10:16 -0400 Received: from mail-lf1-f46.google.com ([209.85.167.46]:46401) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkTzP-00025E-DX for control@debbugs.gnu.org; Wed, 13 Mar 2024 15:10:15 -0400 Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-512f54fc2dbso242036e87.1 for ; Wed, 13 Mar 2024 12:09:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710356910; x=1710961710; darn=debbugs.gnu.org; h=content-transfer-encoding:from:content-language:to:user-agent :mime-version:date:message-id:sender:from:to:cc:subject:date :message-id:reply-to; bh=yBa8jTDGWQML19rHrn/aHSx+gtHomLQZb5Jgj+O759o=; b=DzU0g6d91F5UTsRiz79dh04UYI1yfZ2UVmp63ho6hqBBPYPRIaFM3L+mOC+B77607I PcvZ3tdNAf7uv98VKvxU5ZLljJpmMyEXdaYRq3hEq1JKlG/yzrYSKfi7YmPsAT8EXruR nTW8I+bNRpjjla4p5kzB7rUxUoNzZrRhtUTnmIB9zeOZhx7WhJcEvxzB/PZ43guuvFH7 oLNSYUAakTYE3pIqGxOtmFJCeq5ahtJYUVUTykkEAB+BSqb5CzzZh7+YXMRzZb4lT8Pu Kawb0NgjhK650zyeMar3AhQfFQoVScssUSSW+2z7gF9IjXhbys8A3g3Xeo/da49XAcxO Fmqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710356910; x=1710961710; h=content-transfer-encoding:from:content-language:to:user-agent :mime-version:date:message-id:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yBa8jTDGWQML19rHrn/aHSx+gtHomLQZb5Jgj+O759o=; b=wbKVfjrBHdWYJgyveKt3GQgm7V3cWrQrjN7hpF9Q6j/OWGknVWbvIT/Ug25nKnH1Y7 FWu/Gy1jP5Kyy+TuQfLTJ9g9bJ2OcbuqEb1sXJM2fefaEyY+J/TpZIksRJmojQJCIoeW kKBUFfv+rO3hDnKdJBgSIzfGr1NZhWnTdwtAFK5z6bn6jTo/AAnL9gitVS9OaokZmZKD CrkEeYGGnt/MjpTJh8TTGdU3GJYBmhLSGv5Z7iY74V6d56bbnr48629Yxp+Afy6at4vl YHg/JNMN5c9H8mITMHmeTafpxCjBWLayp/aF2kq0ipcejrkFXN7HkF9lV9NmfnkkIHxx O/3g== X-Gm-Message-State: AOJu0Yw8Qeb12oYqN08IwvMk6mgVxsUVHOYdV/8nzB142GW8UYXzd05m QPACPQyZiSpReN0p0SsYlpxNPzwtF/rGESOMEohIDaVErPK85R64UegebMFX X-Google-Smtp-Source: AGHT+IG9qAaRhtDNzPOQFRJQuP9Tm2z767+PA4G+CX5oFMUEbNatM8vOGvt2IysTWfQLCHIWpIfkaw== X-Received: by 2002:a05:6512:60c:b0:513:cd70:8dab with SMTP id b12-20020a056512060c00b00513cd708dabmr386771lfe.68.1710356909570; Wed, 13 Mar 2024 12:08:29 -0700 (PDT) Received: from [192.168.1.28] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id jw5-20020a05600c574500b00412cbe411f0sm703847wmb.0.2024.03.13.12.08.28 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Mar 2024 12:08:29 -0700 (PDT) Message-ID: <08dbc163-570a-4cf9-e915-697cdd92a59d@draigBrady.com> Date: Wed, 13 Mar 2024 19:08:28 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: control@debbugs.gnu.org Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig_Brady?= Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 2.2 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: unarchive 68708 Content analysis details: (2.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.167.46 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.167.46 listed in list.dnswl.org] 0.0 T_SPF_TEMPERROR SPF: test of record failed (temperror) 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (pixelbeat[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: unarchive 68708 Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.167.46 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.167.46 listed in list.dnswl.org] 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (pixelbeat[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject 0.0 TVD_SPACE_RATIO No description available. -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager unarchive 68708 From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 13 15:23:53 2024 Received: (at 68708) by debbugs.gnu.org; 13 Mar 2024 19:23:53 +0000 Received: from localhost ([127.0.0.1]:47443 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkUCe-0005D5-As for submit@debbugs.gnu.org; Wed, 13 Mar 2024 15:23:53 -0400 Received: from mail-wr1-f47.google.com ([209.85.221.47]:43120) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkUCb-0005Cm-JA for 68708@debbugs.gnu.org; Wed, 13 Mar 2024 15:23:50 -0400 Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-33eaafc4419so877994f8f.0 for <68708@debbugs.gnu.org>; Wed, 13 Mar 2024 12:23:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710357728; x=1710962528; darn=debbugs.gnu.org; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:sender:from:to:cc:subject:date :message-id:reply-to; bh=cPaB9W2tRYFFCo4VWJiMvLLYKBqBbf2VmaxPDqtkE6c=; b=QJSKs+oWX9KVhJg8qx5lLagkHfkLXC7b4aJ7qXnvOErMfWSLeqvL4P+tYYUYfQgqSJ 4GHsLOgxHcr+1sdsGzOjbf0K6qQPqaRjzui5Wa1DidOec3A5tv31LNYbnQtItzDMW6by vaP/LEwmSLZaHbDKGMe95piAwPbF9KpLPRwjfvaLheAeZcS818qIuMb/8RvNIgW7YHEI 6aTz7W8j373nkXKVFioEqlhyBe9bUPN8KLnk9sPpRzS+Mrlo8rtR8cywjgAbPpiBxas/ UOhxfSuBVPZi8qdhfAkUC/o8psdFvelyY8/ls6YUxiNVHZExGyYv2Mh/9BgKBWVXIwD2 H3Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710357728; x=1710962528; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cPaB9W2tRYFFCo4VWJiMvLLYKBqBbf2VmaxPDqtkE6c=; b=PLJfI9tjyT0zoJFC2dWyPKAhUxznFMxyTolNN11155uH0WM0ElsMV3LUxHIZzlABye 7D5uKdyL03gAy8vHboJxcO+fq7/SyfJYF+Nxx0voQs/8k1WZlZxkLROsLj439P8akMwu cics7alxgN1oZWo6B7pFRR2FC+CdBw80Nw264UP3qgaTzOkZSSU+NklP9tRGxBNaIKfB L8n916Hc+dftagWEHOcRbZtI0vR65JLDyRlQDrnV6CTTHhCu6h7I6grxevJ+Z1Gdn1hr dP6r76VMnExcqclZIwcNBr55h5PsLmQ1inQlUsEPAXobd88DkXKQ5xrvtaYHwCJJT5pc VLFQ== X-Forwarded-Encrypted: i=1; AJvYcCXb3yREe2cQmmMQ37bqAzghFGfWVRC8NXRbyM6N/mNwjmxqvF1PuqtaQfyEtNRo9bVFqKmUTidj7xb7tWxkXESNNticgxI= X-Gm-Message-State: AOJu0Yxy6u//m82oeBd6qGFV6HUxfJeA+WBbizaVK3TCMymMqclDY2UB /M2aWHfuaBjl68Bvb/IHK82dcv21xfWwE1rKOrzupYiUdfSynRzO X-Google-Smtp-Source: AGHT+IF0KRrgpwgjZAP/oOz/Tkhjr2ZlqM8FM5e/ke0qbl2InP/3upjG2yslddDB+WYyIZDB9aXbbA== X-Received: by 2002:a05:6000:370:b0:33e:835:668b with SMTP id f16-20020a056000037000b0033e0835668bmr3285478wrf.22.1710357728153; Wed, 13 Mar 2024 12:22:08 -0700 (PDT) Received: from [192.168.1.28] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id y9-20020a056000108900b0033e206a0a7asm12365089wrw.26.2024.03.13.12.22.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Mar 2024 12:22:07 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------Yu430T0yzsWmGnFgf0R0OzyJ" Message-ID: Date: Wed, 13 Mar 2024 19:22:07 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#68708: [PATCH] env,kill: Handle unnamed signals Content-Language: en-US To: Grisha Levit , 68708@debbugs.gnu.org References: <20240125195728.30862-1-grishalevit@gmail.com> From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <20240125195728.30862-1-grishalevit@gmail.com> X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68708 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) This is a multi-part message in MIME format. --------------Yu430T0yzsWmGnFgf0R0OzyJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 25/01/2024 19:52, Grisha Levit wrote: >> On Thu, Jan 25, 2024, 09:50 Pádraig Brady wrote: >> This mostly looks good, except: >> >> - No need to clear the errno before kill(3). >> - Better to use SIG%d rather than the bare %d for signal _names_, as we already parse this format > > Makes sense, done below. > > * src/operand2sig.c (operand2sig): Drop signame argument, accept all > signal numbers <= SIGNUM_BOUND. All callers updated. > * src/env.c (parse_signal_action_params, reset_signal_handlers) > (parse_block_signal_params, set_signal_proc_mask) > (list_signal_handling): Accept all signal numbers <= SIGNUM_BOUND, > use SIG%d for printing if necessary. > * src/kill.c (list_signals, main): Likewise. > (send_signals): Check errno from kill(3) for bad signo. > * src/timeout.c (main): Update operand2sig call. > * tests/misc/kill.sh: Test listing all signal numbers. I've made a few adjustments: - Clarified the commit message. - I've gone back to have kill -l produce a bare number for unnamed signals, because: this is consistent with util-linux, SIG%d is only parseable by coreutils (not util-linux or bash), easier to programatically determine if a name is defined. I've left as SIG%d for -t output as that's a coreutils specific option, and not really programatically consumable anyway. - I've added a validation check for `env --block=32` so that it fails like `env --default=32` and `env --ignore=32`. I.e. exits with EXIT_CANCELED. - Added a NEWS entry. I'll apply this later. thanks! Pádraig --------------Yu430T0yzsWmGnFgf0R0OzyJ Content-Type: text/x-patch; charset=UTF-8; name="0001-env-kill-timeout-support-unnamed-signals.patch" Content-Disposition: attachment; filename="0001-env-kill-timeout-support-unnamed-signals.patch" Content-Transfer-Encoding: base64 RnJvbSBiOGQxYjAwZTIxYTg2MjcwZmJiZTU5MDNhNDEzMTk4OTRkYjI2NmRmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHcmlzaGEgTGV2aXQgPGdyaXNoYWxldml0QGdtYWls LmNvbT4KRGF0ZTogVGh1LCAyNSBKYW4gMjAyNCAxNDo1Mjo1MCAtMDUwMApTdWJqZWN0OiBb UEFUQ0hdIGVudixraWxsLHRpbWVvdXQ6IHN1cHBvcnQgdW5uYW1lZCBzaWduYWxzCgpTb21l IHNpZ25hbHMgd2l0aCB2YWx1ZXMgbGVzcyB0aGF0IHRoZSBtYXggc2lnbmFsIG51bWJlciBm b3IgdGhlIHN5c3RlbQpkbyBub3QgaGF2ZSBkZWZpbmVkIG5hbWVzLiAgRm9yIGV4YW1wbGUs IGN1cnJlbnRseSBvbiBhbWQ2NCBMaW51eCwKc2lnbmFscyAzMiBhbmQgMzMgZG8gbm90IGhh dmUgZGVmaW5lZCBuYW1lcywgYW5kIEFuZHJvaWQgaGFzIGEgd2lkZXIKZ2FwIG9mIHVuZGVm aW5lZCBuYW1lcyB3aGVyZSBpdCByZXNlcnZlcyBzb21lIHJlYWx0aW1lIHNpZ25hbHMuCgpQ cmV2aW91c2x5IHRoZSBzaWduYWwgbGlzdGluZyBpbiBlbnYgZW5kZWQgdXAgcmV1c2luZyB0 aGUgbmFtZQpvZiB0aGUgbGFzdCBwcmludGVkIHZhbGlkIHNpZ25hbCAodGhlIHJlcGVhdGVk IEhVUCBiZWxvdyk6CgogICAgJCBlbnYgLS1saXN0LXNpZ25hbC1oYW5kbGluZyB0cnVlCiAg ICBIVVAgICAgICAgICggMSk6IElHTk9SRQogICAgSFVQICAgICAgICAoMzIpOiBCTE9DSwog ICAgSFVQICAgICAgICAoMzgpOiBJR05PUkUKCi4uYW5kIHRoZSBjb3JyZXNwb25kaW5nIHNp Z25hbCBudW1iZXJzIHdlcmUgcmVqZWN0ZWQgYXMgb3BlcmFuZHMgZm9yIHRoZQplbnYsIGtp bGwsIGFuZCB0aW1lb3V0IGNvbW1hbmRzLgoKVGhpcyBwYXRjaCByZW1vdmVzIHRoZSByZXF1 aXJlbWVudCB0aGF0IHNpZzJzdHIgcmV0dXJucyAwIGZvciBhIHNpZ25hbApudW1iZXIgYXNz b2NpYXRlZCB3aXRoIGFuIG9wZXJhbmQuICBUaGlzIGFsbG93cyB1bm5hbWVkIHNpZ25hbHMg dG8gYmUgaW4KdGhlIHNldHMgYGVudicgYXR0ZW1wdHMgdG8gbWFuaXB1bGF0ZSB3aGVuIGEg LS0qLXNpZ25hbCBvcHRpb24gaXMgdXNlZAp3aXRoIG5vIGFyZ3VtZW50LCBhbmQga2lsbCgx KSBhbmQgdGltZW91dCgxKSB0byBzZW5kIHN1Y2ggdW5uYW1lZApzaWduYWxzLgoKKiBzcmMv b3BlcmFuZDJzaWcuYyAob3BlcmFuZDJzaWcpOiBEcm9wIHNpZ25hbWUgYXJndW1lbnQsIGFj Y2VwdCBhbGwKc2lnbmFsIG51bWJlcnMgPD0gU0lHTlVNX0JPVU5ELiAgQWxsIGNhbGxlcnMg dXBkYXRlZC4KKiBzcmMvZW52LmMgKHBhcnNlX3NpZ25hbF9hY3Rpb25fcGFyYW1zLCByZXNl dF9zaWduYWxfaGFuZGxlcnMpCihwYXJzZV9ibG9ja19zaWduYWxfcGFyYW1zLCBzZXRfc2ln bmFsX3Byb2NfbWFzaykKKGxpc3Rfc2lnbmFsX2hhbmRsaW5nKTogQWNjZXB0IGFsbCBzaWdu YWwgbnVtYmVycyA8PSBTSUdOVU1fQk9VTkQsCnVzZSBTSUclZCBmb3IgcHJpbnRpbmcgaWYg bmVjZXNzYXJ5LgoqIHNyYy9raWxsLmMgKGxpc3Rfc2lnbmFscywgbWFpbik6IExpa2V3aXNl Lgooc2VuZF9zaWduYWxzKTogQ2hlY2sgZXJybm8gZnJvbSBraWxsKDMpIGZvciBiYWQgc2ln bm8uCiogc3JjL3RpbWVvdXQuYyAobWFpbik6IFVwZGF0ZSBvcGVyYW5kMnNpZyBjYWxsLgoq IHRlc3RzL21pc2Mva2lsbC5zaDogVGVzdCBsaXN0aW5nIGFsbCBzaWduYWwgbnVtYmVycy4K KiBORVdTOiBNZW50aW9uIHRoZSBpbXByb3ZlbWVudC4KLS0tCiBORVdTICAgICAgICAgICAg ICAgfCAgMyArKysKIHNyYy9lbnYuYyAgICAgICAgICB8IDI5ICsrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tCiBzcmMva2lsbC5jICAgICAgICAgfCAyNCArKysrKysrKysrKysrKysr LS0tLS0tLS0KIHNyYy9vcGVyYW5kMnNpZy5jICB8ICA4ICsrKystLS0tCiBzcmMvb3BlcmFu ZDJzaWcuaCAgfCAgMiArLQogc3JjL3RpbWVvdXQuYyAgICAgIHwgIDMgKy0tCiB0ZXN0cy9t aXNjL2tpbGwuc2ggfCAxMCArKysrKysrKystCiA3IGZpbGVzIGNoYW5nZWQsIDUyIGluc2Vy dGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmlu ZGV4IDIwY2FkZjE4My4uZjIxZWZjN2MwIDEwMDY0NAotLS0gYS9ORVdTCisrKyBiL05FV1MK QEAgLTkyLDYgKzkyLDkgQEAgR05VIGNvcmV1dGlscyBORVdTICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLSotIG91dGxpbmUgLSotCiAgIFRoaXMgd2FzIHByZXZpb3Vz bHkgMTI4S2lCIGFuZCBpbmNyZWFzaW5nIHRvIDI1NktpQiB3YXMgc2VlbiB0byBpbmNyZWFz ZQogICB0aHJvdWdocHV0IGJ5IDEwLTIwJSB3aGVuIHJlYWRpbmcgY2FjaGVkIGZpbGVzIG9u IG1vZGVybiBzeXN0ZW1zLgogCisgIGVudixraWxsLHRpbWVvdXQgbm93IHN1cHBvcnQgdW5u YW1lZCBzaWduYWxzLiBraWxsKDEpIGZvciBleGFtcGxlIG5vdworICBzdXBwb3J0cyBzZW5k aW5nIHN1Y2ggc2lnbmFscywgYW5kIGVudigxKSB3aWxsIGxpc3QgdGhlbSBhcHByb3ByaWF0 ZWx5LgorCiAgIFNFTGludXggb3BlcmF0aW9ucyBpbiBmaWxlIGNvcHkgb3BlcmF0aW9ucyBh cmUgbm93IG1vcmUgZWZmaWNpZW50LAogICBhdm9pZGluZyB1bm5lZWRlZCBNQ1MvTUxTIGxh YmVsIHRyYW5zbGF0aW9uLgogCmRpZmYgLS1naXQgYS9zcmMvZW52LmMgYi9zcmMvZW52LmMK aW5kZXggNzNkOTg0N2Y0Li5lZDY2MjhmOGYgMTAwNjQ0Ci0tLSBhL3NyYy9lbnYuYworKysg Yi9zcmMvZW52LmMKQEAgLTUzOCw3ICs1MzgsNiBAQCBwYXJzZV9zcGxpdF9zdHJpbmcgKGNo YXIgY29uc3QgKnN0ciwgaW50ICpvcmlnX29wdGluZCwKIHN0YXRpYyB2b2lkCiBwYXJzZV9z aWduYWxfYWN0aW9uX3BhcmFtcyAoY2hhciBjb25zdCAqYXJnLCBib29sIHNldF9kZWZhdWx0 KQogewotICBjaGFyIHNpZ25hbWVbU0lHMlNUUl9NQVhdOwogICBjaGFyICpvcHRfc2lnOwog ICBjaGFyICpvcHRhcmdfd3JpdGFibGU7CiAKQEAgLTU0OCw4ICs1NDcsNyBAQCBwYXJzZV9z aWduYWxfYWN0aW9uX3BhcmFtcyAoY2hhciBjb25zdCAqYXJnLCBib29sIHNldF9kZWZhdWx0 KQogICAgICAgICAgU29tZSBzaWduYWxzIGNhbm5vdCBiZSBzZXQgdG8gaWdub3JlIG9yIGRl ZmF1bHQgKGUuZy4sIFNJR0tJTEwsCiAgICAgICAgICBTSUdTVE9QIG9uIG1vc3QgT1Nlcywg YW5kIFNJR0NPTlQgb24gQUlYLikgLSBzbyBpZ25vcmUgZXJyb3JzLiAgKi8KICAgICAgIGZv ciAoaW50IGkgPSAxIDsgaSA8PSBTSUdOVU1fQk9VTkQ7IGkrKykKLSAgICAgICAgaWYgKHNp ZzJzdHIgKGksIHNpZ25hbWUpID09IDApCi0gICAgICAgICAgc2lnbmFsc1tpXSA9IHNldF9k ZWZhdWx0ID8gREVGQVVMVF9OT0VSUiA6IElHTk9SRV9OT0VSUjsKKyAgICAgICAgc2lnbmFs c1tpXSA9IHNldF9kZWZhdWx0ID8gREVGQVVMVF9OT0VSUiA6IElHTk9SRV9OT0VSUjsKICAg ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU1OCw3ICs1NTYsNyBAQCBwYXJzZV9zaWduYWxf YWN0aW9uX3BhcmFtcyAoY2hhciBjb25zdCAqYXJnLCBib29sIHNldF9kZWZhdWx0KQogICBv cHRfc2lnID0gc3RydG9rIChvcHRhcmdfd3JpdGFibGUsICIsIik7CiAgIHdoaWxlIChvcHRf c2lnKQogICAgIHsKLSAgICAgIGludCBzaWdudW0gPSBvcGVyYW5kMnNpZyAob3B0X3NpZywg c2lnbmFtZSk7CisgICAgICBpbnQgc2lnbnVtID0gb3BlcmFuZDJzaWcgKG9wdF9zaWcpOwog ICAgICAgLyogb3BlcmFuZDJzaWcgYWNjZXB0cyBzaWduYWwgMCAoRVhJVCkgLSBidXQgd2Ug cmVqZWN0IGl0LiAgKi8KICAgICAgIGlmIChzaWdudW0gPT0gMCkKICAgICAgICAgZXJyb3Ig KDAsIDAsIF8oIiVzOiBpbnZhbGlkIHNpZ25hbCIpLCBxdW90ZSAob3B0X3NpZykpOwpAQCAt NjA3LDcgKzYwNSw4IEBAIHJlc2V0X3NpZ25hbF9oYW5kbGVycyAodm9pZCkKICAgICAgIGlm IChkZXZfZGVidWcpCiAgICAgICAgIHsKICAgICAgICAgICBjaGFyIHNpZ25hbWVbU0lHMlNU Ul9NQVhdOwotICAgICAgICAgIHNpZzJzdHIgKGksIHNpZ25hbWUpOworICAgICAgICAgIGlm IChzaWcyc3RyIChpLCBzaWduYW1lKSAhPSAwKQorICAgICAgICAgICAgc25wcmludGYgKHNp Z25hbWUsIHNpemVvZiBzaWduYW1lLCAiU0lHJWQiLCBpKTsKICAgICAgICAgICBkZXZtc2cg KCJSZXNldCBzaWduYWwgJXMgKCVkKSB0byAlcyVzXG4iLAogICAgICAgICAgICAgICAgICAg c2lnbmFtZSwgaSwKICAgICAgICAgICAgICAgICAgIHNldF90b19kZWZhdWx0ID8gIkRFRkFV TFQiIDogIklHTk9SRSIsCkBAIC02MjAsNyArNjE5LDYgQEAgcmVzZXRfc2lnbmFsX2hhbmRs ZXJzICh2b2lkKQogc3RhdGljIHZvaWQKIHBhcnNlX2Jsb2NrX3NpZ25hbF9wYXJhbXMgKGNo YXIgY29uc3QgKmFyZywgYm9vbCBibG9jaykKIHsKLSAgY2hhciBzaWduYW1lW1NJRzJTVFJf TUFYXTsKICAgY2hhciAqb3B0X3NpZzsKICAgY2hhciAqb3B0YXJnX3dyaXRhYmxlOwogCkBA IC02NDcsMTUgKzY0NSwyMiBAQCBwYXJzZV9ibG9ja19zaWduYWxfcGFyYW1zIChjaGFyIGNv bnN0ICphcmcsIGJvb2wgYmxvY2spCiAgIG9wdF9zaWcgPSBzdHJ0b2sgKG9wdGFyZ193cml0 YWJsZSwgIiwiKTsKICAgd2hpbGUgKG9wdF9zaWcpCiAgICAgewotICAgICAgaW50IHNpZ251 bSA9IG9wZXJhbmQyc2lnIChvcHRfc2lnLCBzaWduYW1lKTsKKyAgICAgIGludCBzaWdudW0g PSBvcGVyYW5kMnNpZyAob3B0X3NpZyk7CiAgICAgICAvKiBvcGVyYW5kMnNpZyBhY2NlcHRz IHNpZ25hbCAwIChFWElUKSAtIGJ1dCB3ZSByZWplY3QgaXQuICAqLwogICAgICAgaWYgKHNp Z251bSA9PSAwKQogICAgICAgICBlcnJvciAoMCwgMCwgXygiJXM6IGludmFsaWQgc2lnbmFs IiksIHF1b3RlIChvcHRfc2lnKSk7CiAgICAgICBpZiAoc2lnbnVtIDw9IDApCiAgICAgICAg IHVzYWdlIChleGl0X2ZhaWx1cmUpOwogCi0gICAgICBzaWdhZGRzZXQgKGJsb2NrID8gJmJs b2NrX3NpZ25hbHMgOiAmdW5ibG9ja19zaWduYWxzLCBzaWdudW0pOwotICAgICAgc2lnZGVs c2V0IChibG9jayA/ICZ1bmJsb2NrX3NpZ25hbHMgOiAmYmxvY2tfc2lnbmFscywgc2lnbnVt KTsKKyAgICAgIGlmIChzaWdhZGRzZXQgKGJsb2NrID8gJmJsb2NrX3NpZ25hbHMgOiAmdW5i bG9ja19zaWduYWxzLCBzaWdudW0pID09IC0xKQorICAgICAgICB7CisgICAgICAgICAgaWYg KGJsb2NrKQorICAgICAgICAgICAgZXJyb3IgKEVYSVRfQ0FOQ0VMRUQsIGVycm5vLAorICAg ICAgICAgICAgICAgICAgIF8oImZhaWxlZCB0byBibG9jayBzaWduYWwgJWQiKSwgc2lnbnVt KTsKKyAgICAgICAgICAvKiBlbHNlIGRpYWdub3NlZCBpbiBwYXJzZV9zaWduYWxfYWN0aW9u X3BhcmFtcygpLiAgKi8KKyAgICAgICAgfQorICAgICAgZWxzZQorICAgICAgICBzaWdkZWxz ZXQgKGJsb2NrID8gJnVuYmxvY2tfc2lnbmFscyA6ICZibG9ja19zaWduYWxzLCBzaWdudW0p OwogCiAgICAgICBvcHRfc2lnID0gc3RydG9rIChudWxscHRyLCAiLCIpOwogICAgIH0KQEAg LTY5NSw3ICs3MDAsOCBAQCBzZXRfc2lnbmFsX3Byb2NfbWFzayAodm9pZCkKICAgICAgIGlm IChkZXZfZGVidWcgJiYgZGVidWdfYWN0KQogICAgICAgICB7CiAgICAgICAgICAgY2hhciBz aWduYW1lW1NJRzJTVFJfTUFYXTsKLSAgICAgICAgICBzaWcyc3RyIChpLCBzaWduYW1lKTsK KyAgICAgICAgICBpZiAoc2lnMnN0ciAoaSwgc2lnbmFtZSkgIT0gMCkKKyAgICAgICAgICAg IHNucHJpbnRmIChzaWduYW1lLCBzaXplb2Ygc2lnbmFtZSwgIlNJRyVkIiwgaSk7CiAgICAg ICAgICAgZGV2bXNnICgic2lnbmFsICVzICglZCkgbWFzayBzZXQgdG8gJXNcbiIsCiAgICAg ICAgICAgICAgICAgICBzaWduYW1lLCBpLCBkZWJ1Z19hY3QpOwogICAgICAgICB9CkBAIC03 MjgsNyArNzM0LDggQEAgbGlzdF9zaWduYWxfaGFuZGxpbmcgKHZvaWQpCiAgICAgICBpZiAo ISAqaWdub3JlZCAmJiAhICpibG9ja2VkKQogICAgICAgICBjb250aW51ZTsKIAotICAgICAg c2lnMnN0ciAoaSwgc2lnbmFtZSk7CisgICAgICBpZiAoc2lnMnN0ciAoaSwgc2lnbmFtZSkg IT0gMCkKKyAgICAgICAgc25wcmludGYgKHNpZ25hbWUsIHNpemVvZiBzaWduYW1lLCAiU0lH JWQiLCBpKTsKICAgICAgIGZwcmludGYgKHN0ZGVyciwgIiUtMTBzICglMmQpOiAlcyVzJXNc biIsIHNpZ25hbWUsIGksCiAgICAgICAgICAgICAgICBibG9ja2VkLCBjb25uZWN0LCBpZ25v cmVkKTsKICAgICB9CmRpZmYgLS1naXQgYS9zcmMva2lsbC5jIGIvc3JjL2tpbGwuYwppbmRl eCA5YzhiNmMxOTEuLjhiOWEyNjUwZiAxMDA2NDQKLS0tIGEvc3JjL2tpbGwuYworKysgYi9z cmMva2lsbC5jCkBAIC0xMzEsMTEgKzEzMSwxNSBAQCBsaXN0X3NpZ25hbHMgKGJvb2wgdGFi bGUsIGNoYXIgKmNvbnN0ICphcmd2KQogICAgICAgaWYgKGFyZ3YpCiAgICAgICAgIGZvciAo OyAqYXJndjsgYXJndisrKQogICAgICAgICAgIHsKLSAgICAgICAgICAgIHNpZ251bSA9IG9w ZXJhbmQyc2lnICgqYXJndiwgc2lnbmFtZSk7CisgICAgICAgICAgICBzaWdudW0gPSBvcGVy YW5kMnNpZyAoKmFyZ3YpOwogICAgICAgICAgICAgaWYgKHNpZ251bSA8IDApCiAgICAgICAg ICAgICAgIHN0YXR1cyA9IEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgcHJpbnRfdGFibGVfcm93IChudW1fd2lkdGgsIHNpZ251bSwgbmFtZV93aWR0 aCwgc2lnbmFtZSk7CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoc2ln MnN0ciAoc2lnbnVtLCBzaWduYW1lKSAhPSAwKQorICAgICAgICAgICAgICAgICAgc25wcmlu dGYgKHNpZ25hbWUsIHNpemVvZiBzaWduYW1lLCAiU0lHJWQiLCBzaWdudW0pOworICAgICAg ICAgICAgICAgIHByaW50X3RhYmxlX3JvdyAobnVtX3dpZHRoLCBzaWdudW0sIG5hbWVfd2lk dGgsIHNpZ25hbWUpOworICAgICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgZWxz ZQogICAgICAgICBmb3IgKHNpZ251bSA9IDE7IHNpZ251bSA8PSBTSUdOVU1fQk9VTkQ7IHNp Z251bSsrKQpAQCAtMTQ3LDE2ICsxNTEsMTggQEAgbGlzdF9zaWduYWxzIChib29sIHRhYmxl LCBjaGFyICpjb25zdCAqYXJndikKICAgICAgIGlmIChhcmd2KQogICAgICAgICBmb3IgKDsg KmFyZ3Y7IGFyZ3YrKykKICAgICAgICAgICB7Ci0gICAgICAgICAgICBzaWdudW0gPSBvcGVy YW5kMnNpZyAoKmFyZ3YsIHNpZ25hbWUpOworICAgICAgICAgICAgc2lnbnVtID0gb3BlcmFu ZDJzaWcgKCphcmd2KTsKICAgICAgICAgICAgIGlmIChzaWdudW0gPCAwKQogICAgICAgICAg ICAgICBzdGF0dXMgPSBFWElUX0ZBSUxVUkU7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAg ICAgICBlbHNlIGlmIChJU0RJR0lUICgqKmFyZ3YpKQogICAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgaWYgKElTRElHSVQgKCoqYXJndikpCisgICAgICAgICAgICAgICAgaWYg KHNpZzJzdHIgKHNpZ251bSwgc2lnbmFtZSkgPT0gMCkKICAgICAgICAgICAgICAgICAgIHB1 dHMgKHNpZ25hbWUpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg IHByaW50ZiAoIiVkXG4iLCBzaWdudW0pOwogICAgICAgICAgICAgICB9CisgICAgICAgICAg ICBlbHNlCisgICAgICAgICAgICAgIHByaW50ZiAoIiVkXG4iLCBzaWdudW0pOwogICAgICAg ICAgIH0KICAgICAgIGVsc2UKICAgICAgICAgZm9yIChzaWdudW0gPSAxOyBzaWdudW0gPD0g U0lHTlVNX0JPVU5EOyBzaWdudW0rKykKQEAgLTE5MCw3ICsxOTYsMTAgQEAgc2VuZF9zaWdu YWxzIChpbnQgc2lnbnVtLCBjaGFyICpjb25zdCAqYXJndikKICAgICAgICAgfQogICAgICAg ZWxzZSBpZiAoa2lsbCAocGlkLCBzaWdudW0pICE9IDApCiAgICAgICAgIHsKLSAgICAgICAg ICBlcnJvciAoMCwgZXJybm8sICIlcyIsIHF1b3RlIChhcmcpKTsKKyAgICAgICAgICBpZiAo ZXJybm8gPT0gRUlOVkFMKQorICAgICAgICAgICAgZXJyb3IgKDAsIGVycm5vLCAiJWQiLCBz aWdudW0pOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycm9yICgwLCBlcnJubywg IiVzIiwgcXVvdGUgKGFyZykpOwogICAgICAgICAgIHN0YXR1cyA9IEVYSVRfRkFJTFVSRTsK ICAgICAgICAgfQogICAgIH0KQEAgLTIwNiw3ICsyMTUsNiBAQCBtYWluIChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgIGJvb2wgbGlzdCA9IGZhbHNlOwogICBib29sIHRhYmxlID0gZmFs c2U7CiAgIGludCBzaWdudW0gPSAtMTsKLSAgY2hhciBzaWduYW1lW1NJRzJTVFJfTUFYXTsK IAogICBpbml0aWFsaXplX21haW4gKCZhcmdjLCAmYXJndik7CiAgIHNldF9wcm9ncmFtX25h bWUgKGFyZ3ZbMF0pOwpAQCAtMjUxLDcgKzI1OSw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFy ICoqYXJndikKICAgICAgICAgICAgIGVycm9yICgwLCAwLCBfKCIlczogbXVsdGlwbGUgc2ln bmFscyBzcGVjaWZpZWQiKSwgcXVvdGUgKG9wdGFyZykpOwogICAgICAgICAgICAgdXNhZ2Ug KEVYSVRfRkFJTFVSRSk7CiAgICAgICAgICAgfQotICAgICAgICBzaWdudW0gPSBvcGVyYW5k MnNpZyAob3B0YXJnLCBzaWduYW1lKTsKKyAgICAgICAgc2lnbnVtID0gb3BlcmFuZDJzaWcg KG9wdGFyZyk7CiAgICAgICAgIGlmIChzaWdudW0gPCAwKQogICAgICAgICAgIHVzYWdlIChF WElUX0ZBSUxVUkUpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9vcGVyYW5k MnNpZy5jIGIvc3JjL29wZXJhbmQyc2lnLmMKaW5kZXggMmEyNTYzYzYyLi5iNDZjYjFiZWQg MTAwNjQ0Ci0tLSBhL3NyYy9vcGVyYW5kMnNpZy5jCisrKyBiL3NyYy9vcGVyYW5kMnNpZy5j CkBAIC0xOCw4ICsxOCw4IEBACiAgICBGSVhNRTogTW92ZSB0aGlzIHRvIGdudWxpYi9zdHIy c2lnLmMgKi8KIAogCi0vKiBDb252ZXJ0IE9QRVJBTkQgdG8gYSBzaWduYWwgbnVtYmVyIHdp dGggcHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uIFNJR05BTUUuCi0gICBSZXR1cm4gdGhlIHNp Z25hbCBudW1iZXIsIG9yIC0xIGlmIHVuc3VjY2Vzc2Z1bC4gICovCisvKiBDb252ZXJ0IE9Q RVJBTkQgdG8gYSBzaWduYWwgbnVtYmVyLiAgUmV0dXJuIHRoZSBzaWduYWwgbnVtYmVyLCBv ciAtMSBpZgorICAgdW5zdWNjZXNzZnVsLiAgKi8KIAogI2luY2x1ZGUgPGNvbmZpZy5oPgog I2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAib3BlcmFu ZDJzaWcuaCIKIAogZXh0ZXJuIGludAotb3BlcmFuZDJzaWcgKGNoYXIgY29uc3QgKm9wZXJh bmQsIGNoYXIgKnNpZ25hbWUpCitvcGVyYW5kMnNpZyAoY2hhciBjb25zdCAqb3BlcmFuZCkK IHsKICAgaW50IHNpZ251bTsKIApAQCAtODIsNyArODIsNyBAQCBvcGVyYW5kMnNpZyAoY2hh ciBjb25zdCAqb3BlcmFuZCwgY2hhciAqc2lnbmFtZSkKICAgICAgIGZyZWUgKHVwY2FzZWQp OwogICAgIH0KIAotICBpZiAoc2lnbnVtIDwgMCB8fCBzaWcyc3RyIChzaWdudW0sIHNpZ25h bWUpICE9IDApCisgIGlmICgwID4gc2lnbnVtIHx8IHNpZ251bSA+IFNJR05VTV9CT1VORCkK ICAgICB7CiAgICAgICBlcnJvciAoMCwgMCwgXygiJXM6IGludmFsaWQgc2lnbmFsIiksIHF1 b3RlIChvcGVyYW5kKSk7CiAgICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9zcmMvb3Bl cmFuZDJzaWcuaCBiL3NyYy9vcGVyYW5kMnNpZy5oCmluZGV4IGU0NjY4OWU3Yi4uM2JjNTUx MDUxIDEwMDY0NAotLS0gYS9zcmMvb3BlcmFuZDJzaWcuaAorKysgYi9zcmMvb3BlcmFuZDJz aWcuaApAQCAtMTUsNSArMTUsNSBAQAogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCiAKLWV4dGVybiBpbnQgb3BlcmFuZDJzaWcgKGNoYXIgY29uc3QgKm9wZXJh bmQsIGNoYXIgKnNpZ25hbWUpCitleHRlcm4gaW50IG9wZXJhbmQyc2lnIChjaGFyIGNvbnN0 ICpvcGVyYW5kKQogICBfR0xfQVRUUklCVVRFX05PTk5VTEwgKCk7CmRpZmYgLS1naXQgYS9z cmMvdGltZW91dC5jIGIvc3JjL3RpbWVvdXQuYwppbmRleCA2OGQ4NzJiMTIuLmMxMDJhZmY4 NSAxMDA2NDQKLS0tIGEvc3JjL3RpbWVvdXQuYworKysgYi9zcmMvdGltZW91dC5jCkBAIC00 NjcsNyArNDY3LDYgQEAgaW50CiBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAg IGRvdWJsZSB0aW1lb3V0OwotICBjaGFyIHNpZ25hbWVbU0lHMlNUUl9NQVhdOwogICBpbnQg YzsKIAogICBpbml0aWFsaXplX21haW4gKCZhcmdjLCAmYXJndik7CkBAIC00ODgsNyArNDg3 LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgIGJyZWFrOwog CiAgICAgICAgIGNhc2UgJ3MnOgotICAgICAgICAgIHRlcm1fc2lnbmFsID0gb3BlcmFuZDJz aWcgKG9wdGFyZywgc2lnbmFtZSk7CisgICAgICAgICAgdGVybV9zaWduYWwgPSBvcGVyYW5k MnNpZyAob3B0YXJnKTsKICAgICAgICAgICBpZiAodGVybV9zaWduYWwgPT0gLTEpCiAgICAg ICAgICAgICB1c2FnZSAoRVhJVF9DQU5DRUxFRCk7CiAgICAgICAgICAgYnJlYWs7CmRpZmYg LS1naXQgYS90ZXN0cy9taXNjL2tpbGwuc2ggYi90ZXN0cy9taXNjL2tpbGwuc2gKaW5kZXgg Njk2NzllNWE2Li44MjgxMmVhZGEgMTAwNzU1Ci0tLSBhL3Rlc3RzL21pc2Mva2lsbC5zaAor KysgYi90ZXN0cy9taXNjL2tpbGwuc2gKQEAgLTE3LDcgKzE3LDcgQEAKICMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgogCiAuICIke3NyY2Rpcj0ufS90ZXN0cy9pbml0LnNoIjsgcGF0aF9wcmVwZW5k XyAuL3NyYwotcHJpbnRfdmVyXyBraWxsCitwcmludF92ZXJfIGtpbGwgc2VxCiAKICMgcGFy YW1zIHJlcXVpcmVkCiByZXR1cm5zXyAxIGVudiBraWxsIHx8IGZhaWw9MQpAQCAtNjAsNCAr NjAsMTIgQEAgcmV0dXJuc18gMSBlbnYga2lsbCAtbCAtMSB8fCBmYWlsPTEKIHJldHVybnNf IDEgZW52IGtpbGwgLWwgLTEgMCB8fCBmYWlsPTEKIHJldHVybnNfIDEgZW52IGtpbGwgLWwg SU5WQUxJRCBURVJNIHx8IGZhaWw9MQogCisjIFZlcmlmeSBhbGwgc2lnbmFsIG51bWJlcnMg Y2FuIGJlIGxpc3RlZAorU0lHX0xBU1RfU1RSPSQoZW52IGtpbGwgLWwgfCB0YWlsIC1uMSkg fHwgZnJhbWV3b3JrX2ZhaWx1cmVfCitTSUdfTEFTVF9OVU09JChlbnYga2lsbCAtbCAtLSAi JFNJR19MQVNUX1NUUiIpIHx8IGZyYW1ld29ya19mYWlsdXJlXworU0lHX1NFUT0kKGVudiBz ZXEgLS0gMCAiJFNJR19MQVNUX05VTSIpIHx8IGZyYW1ld29ya19mYWlsdXJlXwordGVzdCAt biAiJFNJR19TRVEiIHx8IGZyYW1ld29ya19mYWlsdXJlXworZW52IGtpbGwgLWwgLS0gJFNJ R19TRVEgfHwgZmFpbD0xCitlbnYga2lsbCAtdCAtLSAkU0lHX1NFUSB8fCBmYWlsPTEKKwog RXhpdCAkZmFpbAotLSAKMi40My4wCgo= --------------Yu430T0yzsWmGnFgf0R0OzyJ-- From unknown Fri Jun 20 07:10:18 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 11 Apr 2024 11:24:14 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator