Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Sep 1997 14:06:11 +0200 (MET DST)
From:      Wolfram Schneider <wosch@cs.tu-berlin.de>
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   bin/4587: bad implemented dot support in chown(8)
Message-ID:  <199709201206.OAA01321@panke.panke.de>
Resent-Message-ID: <199709201220.FAA02418@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         4587
>Category:       bin
>Synopsis:       bad implemented dot support in chown(8)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Sep 20 05:20:01 PDT 1997
>Last-Modified:
>Originator:     Wolfram Schneider
>Organization:
>Release:        FreeBSD 2.2-RELEASE i386
>Environment:


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 `.'

Index: chown.c
===================================================================
RCS file: /usr/cvs/src/usr.sbin/chown/chown.c,v
retrieving revision 1.4
diff -u -r1.4 chown.c
--- chown.c	1996/08/14 18:13:58	1.4
+++ chown.c	1997/09/20 11:30:12
@@ -136,16 +136,16 @@
 
 	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);


>Description:
>How-To-Repeat:
>Fix:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709201206.OAA01321>