aboutsummaryrefslogtreecommitdiff
path: root/coreutils/chown.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2006-01-09 03:45:43 +0000
committerRob Landley <rob@landley.net>2006-01-09 03:45:43 +0000
commitfb8c4983a6ef4128660f7db35a2e491a01ddc722 (patch)
tree931dd70e8ff27cd1d748a8825b9919bd063add3c /coreutils/chown.c
parente569553aa0e510117b2b671e036a9de62cde91c9 (diff)
downloadbusybox-w32-fb8c4983a6ef4128660f7db35a2e491a01ddc722.tar.gz
busybox-w32-fb8c4983a6ef4128660f7db35a2e491a01ddc722.tar.bz2
busybox-w32-fb8c4983a6ef4128660f7db35a2e491a01ddc722.zip
Fix bug 603: "chown :root thingy" should work now.
Diffstat (limited to 'coreutils/chown.c')
-rw-r--r--coreutils/chown.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/coreutils/chown.c b/coreutils/chown.c
index 98f9d9788..888c3fc89 100644
--- a/coreutils/chown.c
+++ b/coreutils/chown.c
@@ -17,8 +17,8 @@
17#include <string.h> 17#include <string.h>
18#include "busybox.h" 18#include "busybox.h"
19 19
20static long uid; 20static uid_t uid = -1;
21static long gid; 21static gid_t gid = -1;
22 22
23static int (*chown_func)(const char *, uid_t, gid_t) = chown; 23static int (*chown_func)(const char *, uid_t, gid_t) = chown;
24 24
@@ -57,15 +57,12 @@ int chown_main(int argc, char **argv)
57 groupName = strchr(*argv, ':'); 57 groupName = strchr(*argv, ':');
58 } 58 }
59 59
60 gid = -1; 60 /* Check for the username and groupname */
61 if (groupName) { 61 if (groupName) {
62 *groupName++ = '\0'; 62 *groupName++ = '\0';
63 gid = get_ug_id(groupName, bb_xgetgrnam); 63 gid = get_ug_id(groupName, bb_xgetgrnam);
64 } 64 }
65 65 if (--groupName != *argv) uid = get_ug_id(*argv, bb_xgetpwnam);
66 /* Now check for the username */
67 uid = get_ug_id(*argv, bb_xgetpwnam);
68
69 ++argv; 66 ++argv;
70 67
71 /* Ok, ready to do the deed now */ 68 /* Ok, ready to do the deed now */