]> git.armaanb.net Git - opendoas.git/blobdiff - doas.c
add some checks to avoid UID_MAX (-1) here. this is not problematic with the current...
[opendoas.git] / 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;