Ensure numeric group or user names don't get misinterpreted.
authorJeremy Allison <jra@samba.org>
Mon, 25 Jun 2001 21:29:33 +0000 (21:29 +0000)
committerJeremy Allison <jra@samba.org>
Mon, 25 Jun 2001 21:29:33 +0000 (21:29 +0000)
Jeremy.
(This used to be commit e88da9dcc79801028127bcbe328af001b58e653a)

source3/lib/util.c

index 37bb1693d8b74b70598dfed62465b1470023a145..2e2c887b93f3807d3efa70a5aa8cdba9d8f6d8b8 100644 (file)
@@ -1053,13 +1053,15 @@ uid_t nametouid(char *name)
        uid_t u;
 
        u = (uid_t)strtol(name, &p, 0);
-       if (p != name) return u;
+       if ((p != name) && (*p == '\0'))
+               return u;
 
        if (winbind_nametouid(&u, name))
                return u;
 
        pass = sys_getpwnam(name);
-       if (pass) return(pass->pw_uid);
+       if (pass)
+               return(pass->pw_uid);
        return (uid_t)-1;
 }
 
@@ -1075,13 +1077,15 @@ gid_t nametogid(char *name)
        gid_t g;
 
        g = (gid_t)strtol(name, &p, 0);
-       if (p != name) return g;
+       if ((p != name) && (*p == '\0'))
+               return g;
 
        if (winbind_nametogid(&g, name))
                return g;
 
        grp = getgrnam(name);
-       if (grp) return(grp->gr_gid);
+       if (grp)
+               return(grp->gr_gid);
        return (gid_t)-1;
 }