Commit Diff


commit - 50d2d84f9c7dec008fcce0947b9eff4d8a8a6bd0
commit + 7e214d7fe2a384a36c53bc423363b18b431d7564
blob - 9b1c2362dc46aced3070a3a2837f0487b8d46a6a
blob + bdac5c09f908f417953354b69bf9fbc37b647288
--- vias.c
+++ vias.c
@@ -67,9 +67,11 @@ parseuid(const char *s, uid_t *uid)
 
 	if ((pw = getpwnam(s)) != NULL) {
 		*uid = pw->pw_uid;
+		if (*uid == (uid_t)-1)
+			return -1;
 		return 0;
 	}
-	*uid = strtonum(s, 0, UID_MAX, &errstr);
+	*uid = strtonum(s, 0, UINT_MAX - 1, &errstr);
 	if (errstr)
 		return -1;
 	return 0;
@@ -95,9 +97,11 @@ parsegid(const char *s, gid_t *gid)
 
 	if ((gr = getgrnam(s)) != NULL) {
 		*gid = gr->gr_gid;
+		if (*gid == (gid_t)-1)
+			return -1;
 		return 0;
 	}
-	*gid = strtonum(s, 0, GID_MAX, &errstr);
+	*gid = strtonum(s, 0, UINT_MAX - 1, &errstr);
 	if (errstr)
 		return -1;
 	return 0;