vfs_syscalls / fhstatfs / suser()

Pawel Jakub Dawidek pjd at FreeBSD.org
Mon Jun 7 11:45:08 GMT 2004


On Sun, Jun 06, 2004 at 07:38:14PM +0000, Bjoern A. Zeeb wrote:
+> Hi,
+> 
+> if I am not wrong the part removed by the atatched diff is not
+> needed because at the very beginning of the function there is a
+> 
+>         error = suser(td);
+>         if (error)
+>                 return (error);
+> 
+> so a second check should never become true again (if threads cannot be
+> move in and out of jails).
+> 
+> please correct me if I am wrong.
+> 
+> 
+> --- ./vfs_syscalls.c.orig	Sun Jun  6 19:32:23 2004
+> +++ ./vfs_syscalls.c	Sun Jun  6 19:33:12 2004
+> @@ -4128,11 +4128,6 @@ fhstatfs(td, uap)
+>  	sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK;
+>  	if ((error = VFS_STATFS(mp, sp, td)) != 0)
+>  		return (error);
+> -	if (suser(td)) {
+> -		bcopy(sp, &sb, sizeof(sb));
+> -		sb.f_fsid.val[0] = sb.f_fsid.val[1] = 0;
+> -		sp = &sb;
+> -	}
+>  	return (copyout(sp, uap->buf, sizeof(*sp)));
+>  }

I'm not sure what the intention was, but I think we should probably
change first suser() to suser_cred(td->td_ucred, PRISON_ROOT) as leave
second one.

PS. I'm CCing this to alfred@ who bring it from NetBSD.

-- 
Pawel Jakub Dawidek                       http://www.FreeBSD.org
pjd at FreeBSD.org                           http://garage.freebsd.pl
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20040607/3ac07413/attachment.bin


More information about the freebsd-current mailing list