aboutsummaryrefslogtreecommitdiffstats
path: root/clientserver.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2009-05-07 07:34:42 -0700
committerWayne Davison <wayned@samba.org>2009-05-07 07:34:42 -0700
commit56017d3150671e08b309a1b6171591b39166c3fa (patch)
tree507d3f893ff648ccbdf75c0dbc9728ffc6905ff6 /clientserver.c
parentd960af72b20341ef7bab576de9abb483b05377ef (diff)
downloadandroid_external_rsync-56017d3150671e08b309a1b6171591b39166c3fa.tar.gz
android_external_rsync-56017d3150671e08b309a1b6171591b39166c3fa.tar.bz2
android_external_rsync-56017d3150671e08b309a1b6171591b39166c3fa.zip
Enhance name_to_{u,g}id() to optionally parse numbers and rename
to {user,group}_to_*(). Based on a patch by Matt McCutchen.
Diffstat (limited to 'clientserver.c')
-rw-r--r--clientserver.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/clientserver.c b/clientserver.c
index b6afe005..a74cff29 100644
--- a/clientserver.c
+++ b/clientserver.c
@@ -416,13 +416,10 @@ static int path_failure(int f_out, const char *dir, BOOL was_chdir)
static int add_a_group(int f_out, const char *gname)
{
gid_t gid;
- if (!name_to_gid(gname, &gid)) {
- if (!isDigit(gname)) {
- rprintf(FLOG, "Invalid gid %s\n", gname);
- io_printf(f_out, "@ERROR: invalid gid %s\n", gname);
- return -1;
- }
- gid = atol(gname);
+ if (!group_to_gid(gname, &gid, True)) {
+ rprintf(FLOG, "Invalid gid %s\n", gname);
+ io_printf(f_out, "@ERROR: invalid gid %s\n", gname);
+ return -1;
}
if (gid_count == MAX_GID_LIST) {
rprintf(FLOG, "Too many groups specified via gid parameter.\n");
@@ -558,13 +555,10 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
p = *lp_uid(i) ? lp_uid(i) : am_root ? NOBODY_USER : NULL;
if (p) {
- if (!name_to_uid(p, &uid)) {
- if (!isDigit(p)) {
- rprintf(FLOG, "Invalid uid %s\n", p);
- io_printf(f_out, "@ERROR: invalid uid %s\n", p);
- return -1;
- }
- uid = atol(p);
+ if (!user_to_uid(p, &uid, True)) {
+ rprintf(FLOG, "Invalid uid %s\n", p);
+ io_printf(f_out, "@ERROR: invalid uid %s\n", p);
+ return -1;
}
set_uid = 1;
} else