]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
wall: check -g GID
authorKarel Zak <kzak@redhat.com>
Fri, 2 Dec 2016 13:11:20 +0000 (14:11 +0100)
committerKarel Zak <kzak@redhat.com>
Fri, 2 Dec 2016 13:11:20 +0000 (14:11 +0100)
Based on comments from Sami Kerola.

Signed-off-by: Karel Zak <kzak@redhat.com>
bash-completion/wall
term-utils/wall.c

index 1331e6aebb4a777297af1c6fbdac9d23063c1b36..d2fba9ad5860ac55e0784ef6d1bbb482255d50c9 100644 (file)
@@ -19,7 +19,7 @@ _wall_module()
        esac
        case $cur in
                -*)
-                       OPTS="--nobanner --timeout --version --help"
+                       OPTS="--group --nobanner --timeout --version --help"
                        COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
                        return 0
                        ;;
index 7eee88c9028545b57936fddd42843c8ba9cf4bdc..2c1697c3b89fa4679415e20b4b832e771dd8b74a 100644 (file)
@@ -109,10 +109,16 @@ struct group_workspace {
 static gid_t get_group_gid(const char *optarg)
 {
        struct group *gr;
+       gid_t gid;
 
        if ((gr = getgrnam(optarg)))
                return gr->gr_gid;
-       return strtou64_or_err(optarg, _("invalid group argument"));
+
+       gid = strtou32_or_err(optarg, _("invalid group argument"));
+       if (!getgrgid(gid))
+               errx(EXIT_FAILURE, _("%s: unknown gid"), optarg);
+
+       return gid;
 }
 
 static struct group_workspace *init_group_workspace(const char *optarg)