diff options
author | wosch <wosch@FreeBSD.org> | 1997-09-21 09:13:57 +0000 |
---|---|---|
committer | wosch <wosch@FreeBSD.org> | 1997-09-21 09:13:57 +0000 |
commit | 354c4ae8996f9068453afe1a19101c395d1bfd3e (patch) | |
tree | 8247c9b2f5bccc5e991ed286e3d39c37d5af3328 /usr.sbin/chown/chown.c | |
parent | 90f6eb3199dd175b77d3c7b38e2f329e874ca817 (diff) | |
download | FreeBSD-src-354c4ae8996f9068453afe1a19101c395d1bfd3e.zip FreeBSD-src-354c4ae8996f9068453afe1a19101c395d1bfd3e.tar.gz |
Chown(8) compiled with -DSUPPORT_DOT (backward compatibility) does
first check for a `.' and then for `:' as a delimiter.
Usernames with a dot will fail.
# chown r.r:bin /tmp/bla
chown: r:bin: illegal group name
Fix: first check for a `:' and then for a `.'
Diffstat (limited to 'usr.sbin/chown/chown.c')
-rw-r--r-- | usr.sbin/chown/chown.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/usr.sbin/chown/chown.c b/usr.sbin/chown/chown.c index b3b7876..918b8d9 100644 --- a/usr.sbin/chown/chown.c +++ b/usr.sbin/chown/chown.c @@ -42,7 +42,7 @@ static const char copyright[] = static char sccsid[] = "@(#)chown.c 8.8 (Berkeley) 4/4/94"; #else static const char rcsid[] = - "$Id: chown.c,v 1.7 1997/08/24 02:10:29 steve Exp $"; + "$Id: chown.c,v 1.8 1997/09/04 11:55:45 charnier Exp $"; #endif #endif /* not lint */ @@ -133,16 +133,16 @@ main(argc, argv) uid = gid = -1; if (ischown) { -#ifdef SUPPORT_DOT - if ((cp = strchr(*argv, '.')) != NULL) { + if ((cp = strchr(*argv, ':')) != NULL) { *cp++ = '\0'; a_gid(cp); - } else -#endif - if ((cp = strchr(*argv, ':')) != NULL) { + } +#ifdef SUPPORT_DOT + else if ((cp = strchr(*argv, '.')) != NULL) { *cp++ = '\0'; a_gid(cp); } +#endif a_uid(*argv); } else a_gid(*argv); |