]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
kill: make options --pid and --queue mutually exclusive
authorSami Kerola <kerolasa@iki.fi>
Mon, 7 Apr 2014 21:32:44 +0000 (22:32 +0100)
committerSami Kerola <kerolasa@iki.fi>
Sat, 26 Apr 2014 17:36:40 +0000 (18:36 +0100)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
misc-utils/kill.c

index d461b36a664aba4704f77df1be8b2f58ae5a3c8b..e678661873b2d49310f0937532f093e55d671671 100644 (file)
@@ -381,6 +381,10 @@ static char **parse_arguments(int argc, char **argv, struct kill_control *ctl)
                        ctl->do_pid = 1;
                        if (ctl->do_kill)
                                errx(EXIT_FAILURE, _("%s and %s are mutually exclusive"), "--pid", "--signal");
+#ifdef HAVE_SIGQUEUE
+                       if (ctl->use_sigval)
+                               errx(EXIT_FAILURE, _("%s and %s are mutually exclusive"), "--pid", "--queue");
+#endif
                        continue;
                }
                if (!strcmp(arg, "-s") || !strcmp(arg, "--signal")) {
@@ -399,6 +403,8 @@ static char **parse_arguments(int argc, char **argv, struct kill_control *ctl)
                if (!strcmp(arg, "-q") || !strcmp(arg, "--queue")) {
                        if (argc < 2)
                                errx(EXIT_FAILURE, _("option '%s' requires an argument"), arg);
+                       if (ctl->do_pid)
+                               errx(EXIT_FAILURE, _("%s and %s are mutually exclusive"), "--pid", "--queue");
                        argc--, argv++;
                        arg = *argv;
                        if ((ctl->numsig = arg_to_signum(arg, 0)) < 0)