Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Oct 2002 17:21:44 -0500 (EST)
From:      David Mazieres <dm@scs.cs.nyu.edu>
To:        johan@FreeBSD.org
Cc:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/13108: authunix_create_default includes egid twice
Message-ID:  <200210282221.g9SMLi186710@amsterdam.lcs.mit.edu>
In-Reply-To: <200210282131.g9SLVTDi096146@freefall.freebsd.org> (message from Johan Karlsson on Mon, 28 Oct 2002 13:31:29 -0800 (PST))
References:   <200210282131.g9SLVTDi096146@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> Date: Mon, 28 Oct 2002 13:31:29 -0800 (PST)
> From: Johan Karlsson <johan@FreeBSD.org>
> 
> Synopsis: authunix_create_default includes egid twice
> 
> State-Changed-From-To: open->closed
> State-Changed-By: johan
> State-Changed-When: Mon Oct 28 13:29:08 PST 2002
> State-Changed-Why: 
> 	The code in question was removed in rev 1.13 of 
> 	src/lib/libc/rpc/auth_unix.c
> 
> 	If there is a problem with the new code please
> 	open a new PR.
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=13108

The new code seems to have the same problem.  The new version of
authunix_create_default() is:

        if ((len = getgroups(NGRPS, gids)) < 0)
                abort();
        /* XXX: interface problem; those should all have been unsigned */
        return (authunix_create(machname, (int)uid, (int)gid, len,
            (int *)gids));

I think this code should be:

        if ((len = getgroups(NGRPS, gids)) < 1)
                abort();
        /* XXX: interface problem; those should all have been unsigned */
        return (authunix_create(machname, (int)uid, (int)gid, len-1,
            (int *)gids + 1));

Either that, or you should change nfsm_rpchead in
nfsclient/nfs_subs.C.

Currently, the fact that authunix_create_default and the kernel create
different AUTHUNIX credentials is a pain for SFS (a FreeBSD-compatible
network file system that I work on--see www.fs.net).  I realize that
my needs are somewhat esoteric.  I certainly don't expect you to put
in a change just because it is good for SFS.  However, just on simple
aesthetic grounds, doesn't it make sense for the kernel and libc to be
consistent with each other?  Can't FreeBSD just decide if the AUTHUNIX
parms should contain a second copy of the egid in the grouplist, and
then have both libc and the kernel do the same thing?

Of course, at this point, if you were to change the kernel, it would
make things even worse for me, because right now there is no way of
autoconfing FreeBSD's behavior.  I have hard-coded the current kernel
behavior into SFS if the OS name is FreeBSD.

Thanks,
David

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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