]> git.armaanb.net Git - opendoas.git/commitdiff
add some checks to avoid UID_MAX (-1) here. this is not problematic with the current...
authortedu <tedu>
Fri, 18 Oct 2019 17:15:45 +0000 (17:15 +0000)
committerDuncan Overbruck <mail@duncano.de>
Sat, 19 Oct 2019 13:03:04 +0000 (15:03 +0200)
doas.c

diff --git a/doas.c b/doas.c
index 71f955a76afc65b7a328ff9b2963f6b8537eaf2f..70b255bc1a618270513e5f42ed9f932bd658e7c9 100644 (file)
--- a/doas.c
+++ b/doas.c
@@ -57,9 +57,11 @@ parseuid(const char *s, uid_t *uid)
 
        if ((pw = getpwnam(s)) != NULL) {
                *uid = pw->pw_uid;
+               if (*uid == UID_MAX)
+                       return -1;
                return 0;
        }
-       *uid = strtonum(s, 0, UID_MAX, &errstr);
+       *uid = strtonum(s, 0, UID_MAX - 1, &errstr);
        if (errstr)
                return -1;
        return 0;
@@ -85,9 +87,11 @@ parsegid(const char *s, gid_t *gid)
 
        if ((gr = getgrnam(s)) != NULL) {
                *gid = gr->gr_gid;
+               if (*gid == GID_MAX)
+                       return -1;
                return 0;
        }
-       *gid = strtonum(s, 0, GID_MAX, &errstr);
+       *gid = strtonum(s, 0, GID_MAX - 1, &errstr);
        if (errstr)
                return -1;
        return 0;