Fix bug 603: "chown :root thingy" should work now.
authorRob Landley <rob@landley.net>
Mon, 9 Jan 2006 03:45:43 +0000 (03:45 -0000)
committerRob Landley <rob@landley.net>
Mon, 9 Jan 2006 03:45:43 +0000 (03:45 -0000)
coreutils/chown.c

index 98f9d97882adddacc65f6e817b486aabf76be8c9..888c3fc89abf5dde64d8ca6072500ab4b8b155a9 100644 (file)
@@ -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 */