# HG changeset patch # User Timo Sirainen # Date 1183422563 -10800 # Node ID 5fa84de81413ddb71bbe123ab4a045efd5b35f5d # Parent 592a69a21b537c04b9d233011604fc21454a4fbb Allow uid/gid names that begin with numbers, as long as it's not completely a number. diff -r 592a69a21b53 -r 5fa84de81413 src/auth/userdb.c --- a/src/auth/userdb.c Tue Jul 03 03:24:46 2007 +0300 +++ b/src/auth/userdb.c Tue Jul 03 03:29:23 2007 +0300 @@ -49,12 +49,17 @@ uid_t userdb_parse_uid(struct auth_request *request, const char *str) { struct passwd *pw; + uid_t uid; + char *p; if (str == NULL) return (uid_t)-1; - if (*str >= '0' && *str <= '9') - return (uid_t)strtoul(str, NULL, 10); + if (*str >= '0' && *str <= '9') { + uid = (uid_t)strtoul(str, &p, 10); + if (*p == '\0') + return uid; + } pw = getpwnam(str); if (pw == NULL) { @@ -70,12 +75,17 @@ gid_t userdb_parse_gid(struct auth_request *request, const char *str) { struct group *gr; + gid_t gid; + char *p; if (str == NULL) return (gid_t)-1; - if (*str >= '0' && *str <= '9') - return (gid_t)strtoul(str, NULL, 10); + if (*str >= '0' && *str <= '9') { + gid = (gid_t)strtoul(str, &p, 10); + if (*p == '\0') + return gid; + } gr = getgrnam(str); if (gr == NULL) {