kill builtin incorrectly thinks that -PGID is signal name even if the signal name is set by -s or -n option.

Reproducer:
[rra...@dhcp-lab-170 ~]$ sleep 1d | sleep 2d | sleep 3d &
[1] 5034
[rra...@dhcp-lab-170 ~]$ ps -j
  PID  PGID   SID TTY          TIME CMD
 4863  4863  4863 pts/2    00:00:00 bash
 5032  5032  4863 pts/2    00:00:00 sleep
 5033  5032  4863 pts/2    00:00:00 sleep
 5034  5032  4863 pts/2    00:00:00 sleep
 5035  5035  4863 pts/2    00:00:00 ps
[rra...@dhcp-lab-170 ~]$ kill -s TERM -5032
bash: kill: 5032: invalid signal specification

Patch:
diff -up bash-4.0/builtins/kill.def.pgid bash-4.0/builtins/kill.def
--- bash-4.0/builtins/kill.def.pgid    2009-12-11 13:56:26.000000000 +0100
+++ bash-4.0/builtins/kill.def    2009-12-11 13:58:04.000000000 +0100
@@ -121,6 +121,7 @@ kill_builtin (list)
           else
         sig = decode_signal (sigspec, dflags);
           list = list->next;
+          saw_signal++;
         }
       else
         {

RR


Reply via email to