Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!bunyip.cc.uq.oz.au!harbinger.cc.monash.edu.au!yeshua.marcam.com!usc!cs.utexas.edu!uunet!zib-berlin.de!news.belwue.de!news.uni-stuttgart.de!tyrell.tynet.sub.org!tyrell.tynet.sub.org!not-for-mail From: rodney@tyrell.tynet.sub.org (Rodney Volz) Newsgroups: comp.os.386bsd.bugs Subject: FreeBSD: UFS bug (and fix) Date: 15 Jan 1994 15:38:25 +0100 Organization: Tyrell Stuttgart, FRG Lines: 47 Message-ID: <2h8v5f$78@tyrell.tynet.sub.org> NNTP-Posting-Host: tyrell.tynet.sub.org Hello, IMHO, there's a bug in /usr/src/sys/ufs/ufs_vnops.c concerning the gid-handling when creating files. In FreeBSD/ufs, files are always created with their group-id set to the group-id of their parent-directory. This behaviour is neither POSIX nor BSD-conforming. Posix says, that the group-id of newly created files should be set to the group-id of the creator. An optional Posix feature is, that if the parent directory has a group S-bit set, the group-id of the new file should be set to the group-id of its parent directory. *** ufs_vnops.c.ORIGINAL Sat Jan 15 15:02:27 1994 --- ufs_vnops.c Sat Jan 15 15:35:04 1994 *************** *** 1626,1632 **** --- 1626,1640 ---- } ip = tip; ip->i_uid = ndp->ni_cred->cr_uid; + #if 0 ip->i_gid = pdir->i_gid; + #else + /* This behaviour should be POSIX conform. -Rodney Volz */ + if (pdir->i_mode & S_ISGID) + ip->i_gid = pdir->i_gid; + else + ip->i_gid = ndp->ni_cred->cr_gid; + #endif #ifdef QUOTA if ((error = getinoquota(ip)) || (error = chkiq(ip, 1, ndp->ni_cred, 0))) { This patch (for FreeBSD-1.0.2, cd to /usr/src/sys/ufs and apply the patch there) implements the "enhanced" Posix-Behaviour (which is known from HPUX, SunOS and some other unix flavours). I'd be happy to see this patch incorporated in the next FreeBSD release. -Rodney Volz -- Rodney Volz - 70197 Stuttgart - FRG ======================> public access usenet system <======================== rodney@tyrell.tynet.sub.org +49 711 651429 Fax/Data volz@rus.uni-stuttgart.de \______________ May your children and mine live in peace. ________________/