summaryrefslogtreecommitdiff
path: root/source3/lib/util.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-06-25 21:29:33 +0000
committerJeremy Allison <jra@samba.org>2001-06-25 21:29:33 +0000
commit9f447adbec3b4fa97be70add22e57a17fb8a53b2 (patch)
tree4401eeb0287ad38ab265bbfc803c93c47c017677 /source3/lib/util.c
parentb0be9cd7683ae2b8d53aac3d98f1cb5a7d77f3f3 (diff)
downloadsamba-9f447adbec3b4fa97be70add22e57a17fb8a53b2.tar.gz
samba-9f447adbec3b4fa97be70add22e57a17fb8a53b2.tar.bz2
samba-9f447adbec3b4fa97be70add22e57a17fb8a53b2.zip
Ensure numeric group or user names don't get misinterpreted.
Jeremy. (This used to be commit e88da9dcc79801028127bcbe328af001b58e653a)
Diffstat (limited to 'source3/lib/util.c')
-rw-r--r--source3/lib/util.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 37bb1693d8..2e2c887b93 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -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;
}