summaryrefslogtreecommitdiff
path: root/coreutils/chown.c
diff options
context:
space:
mode:
authorRob Landley2006-01-09 03:45:43 +0000
committerRob Landley2006-01-09 03:45:43 +0000
commitfb8c4983a6ef4128660f7db35a2e491a01ddc722 (patch)
tree931dd70e8ff27cd1d748a8825b9919bd063add3c /coreutils/chown.c
parente569553aa0e510117b2b671e036a9de62cde91c9 (diff)
downloadbusybox-fb8c4983a6ef4128660f7db35a2e491a01ddc722.zip
busybox-fb8c4983a6ef4128660f7db35a2e491a01ddc722.tar.gz
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 98f9d97..888c3fc 100644
--- a/coreutils/chown.c
+++ b/coreutils/chown.c
@@ -17,8 +17,8 @@
#include <string.h>
#include "busybox.h"
-static long uid;
-static long gid;
+static uid_t uid = -1;
+static gid_t gid = -1;
static int (*chown_func)(const char *, uid_t, gid_t) = chown;
@@ -57,15 +57,12 @@ int chown_main(int argc, char **argv)
groupName = strchr(*argv, ':');
}
- gid = -1;
+ /* Check for the username and groupname */
if (groupName) {
*groupName++ = '\0';
gid = get_ug_id(groupName, bb_xgetgrnam);
}
-
- /* Now check for the username */
- uid = get_ug_id(*argv, bb_xgetpwnam);
-
+ if (--groupName != *argv) uid = get_ug_id(*argv, bb_xgetpwnam);
++argv;
/* Ok, ready to do the deed now */