From owner-trustedbsd-cvs@FreeBSD.ORG Thu Nov 16 21:32:40 2006 Return-Path: X-Original-To: trustedbsd-cvs@freebsd.org Delivered-To: trustedbsd-cvs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 19B3116A492 for ; Thu, 16 Nov 2006 21:32:40 +0000 (UTC) (envelope-from owner-perforce@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 62AB243D72 for ; Thu, 16 Nov 2006 21:32:39 +0000 (GMT) (envelope-from owner-perforce@freebsd.org) Received: from mx2.freebsd.org (mx2.freebsd.org [216.136.204.119]) by cyrus.watson.org (Postfix) with ESMTP id 3208546CA5 for ; Thu, 16 Nov 2006 16:32:38 -0500 (EST) Received: from hub.freebsd.org (hub.freebsd.org [216.136.204.18]) by mx2.freebsd.org (Postfix) with ESMTP id 8A5B15C73A; Thu, 16 Nov 2006 21:32:37 +0000 (GMT) (envelope-from owner-perforce@freebsd.org) Received: by hub.freebsd.org (Postfix, from userid 32767) id 0C68B16A417; Thu, 16 Nov 2006 21:32:37 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C606B16A407 for ; Thu, 16 Nov 2006 21:32:36 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BBB8F43D66 for ; Thu, 16 Nov 2006 21:32:32 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kAGLWWmp004301 for ; Thu, 16 Nov 2006 21:32:32 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kAGLWWdB004298 for perforce@freebsd.org; Thu, 16 Nov 2006 21:32:32 GMT (envelope-from millert@freebsd.org) Date: Thu, 16 Nov 2006 21:32:32 GMT Message-Id: <200611162132.kAGLWWdB004298@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 110129 for review X-BeenThere: trustedbsd-cvs@FreeBSD.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: TrustedBSD CVS and Perforce commit message list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Nov 2006 21:32:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=110129 Change 110129 by millert@millert_macbook on 2006/11/16 21:31:41 Add missing call to mac_vnode_check_truncate() for F_SETSIZE fcntl. Affected files ... .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/kern_descrip.c#8 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/kern_descrip.c#8 (text+ko) ==== @@ -677,26 +677,35 @@ if (error) goto outdrop; + vp = (struct vnode *)fp->f_data; + error = vnode_getwithref(vp); + if (error) + goto outdrop; + +#ifdef MAC + error = mac_vnode_check_truncate(proc_ucred(p), + vfs_context_ucred(&context), vp); + if (error) { + (void)vnode_put(vp); + goto outdrop; + } +#endif /* * Make sure that we are root. Growing a file * without zero filling the data is a security hole * root would have access anyway so we'll allow it */ - if (!is_suser()) { error = EACCES; - goto outdrop; - } - vp = (struct vnode *)fp->f_data; - - if ( (error = vnode_getwithref(vp)) == 0 ) { - /* + } else { + /* * set the file size */ - error = vnode_setsize(vp, offset, IO_NOZEROFILL, &context); + error = vnode_setsize(vp, offset, IO_NOZEROFILL, + &context); + } - (void)vnode_put(vp); - } + (void)vnode_put(vp); goto outdrop; case F_RDAHEAD: