diff options
author | Rob Landley <rob@landley.net> | 2016-08-18 21:33:27 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2016-08-18 21:33:27 -0500 |
commit | 3d64b0cc95c5957e53474c3e50f143c61a057104 (patch) | |
tree | 0c32cb7e4d104aa5d3c1f7ee0dcb7ac1f45f3a20 /toys/posix/find.c | |
parent | 05e1582ec435932a25db21fd3ae71fbf62a4b45d (diff) | |
download | toybox-3d64b0cc95c5957e53474c3e50f143c61a057104.tar.gz |
Change xgetpwnamid/xgetgrnamid to xgetuid/xgetgid returning the id number
instead of a struct. This means it can return "12345" even if that user/group
doesn't exist in /etc/passwd and similar.
All the users were immediately dereferencing it to get pw_uid or gr_gid
anyway, so just return it directly and adjust the users. This fixes
things like "chown 12345:23456 filename".
Diffstat (limited to 'toys/posix/find.c')
-rw-r--r-- | toys/posix/find.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/toys/posix/find.c b/toys/posix/find.c index 02f7702d..86fc141f 100644 --- a/toys/posix/find.c +++ b/toys/posix/find.c @@ -398,8 +398,8 @@ static int do_find(struct dirtree *new) udl = xmalloc(sizeof(*udl)); dlist_add_nomalloc(&TT.argdata, (void *)udl); - if (*s == 'u') udl->u.uid = xgetpwnamid(ss[1])->pw_uid; - else if (*s == 'g') udl->u.gid = xgetgrnamid(ss[1])->gr_gid; + if (*s == 'u') udl->u.uid = xgetuid(ss[1]); + else if (*s == 'g') udl->u.gid = xgetgid(ss[1]); else { struct stat st; |