From owner-svn-src-head@FreeBSD.ORG Mon Nov 26 04:29:48 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2D5F588D; Mon, 26 Nov 2012 04:29:48 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 1273D8FC15; Mon, 26 Nov 2012 04:29:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qAQ4TlpY093988; Mon, 26 Nov 2012 04:29:47 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qAQ4Tlqw093986; Mon, 26 Nov 2012 04:29:47 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201211260429.qAQ4Tlqw093986@svn.freebsd.org> From: Davide Italiano Date: Mon, 26 Nov 2012 04:29:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243548 - head/sys/fs/smbfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Nov 2012 04:29:48 -0000 Author: davide Date: Mon Nov 26 04:29:47 2012 New Revision: 243548 URL: http://svnweb.freebsd.org/changeset/base/243548 Log: - smbfs_rename() might return an error value without correctly upgrading the vnode use count, and this might cause the kernel to panic if compiled with WITNESS enable. - Be sure to put the '\0' terminator to the rpath string. Sponsored by: iXsystems inc. Modified: head/sys/fs/smbfs/smbfs_node.c head/sys/fs/smbfs/smbfs_vnops.c Modified: head/sys/fs/smbfs/smbfs_node.c ============================================================================== --- head/sys/fs/smbfs/smbfs_node.c Mon Nov 26 04:26:27 2012 (r243547) +++ head/sys/fs/smbfs/smbfs_node.c Mon Nov 26 04:29:47 2012 (r243548) @@ -187,6 +187,7 @@ smbfs_node_alloc(struct mount *mp, struc bcopy(name, p, nmlen); p += nmlen; } + *p = '\0'; MPASS(p == rpath + rplen); lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL); /* Vnode initialization */ Modified: head/sys/fs/smbfs/smbfs_vnops.c ============================================================================== --- head/sys/fs/smbfs/smbfs_vnops.c Mon Nov 26 04:26:27 2012 (r243547) +++ head/sys/fs/smbfs/smbfs_vnops.c Mon Nov 26 04:29:47 2012 (r243548) @@ -583,12 +583,12 @@ smbfs_rename(ap) /* Check for cross-device rename */ if ((fvp->v_mount != tdvp->v_mount) || (tvp && (fvp->v_mount != tvp->v_mount))) { - return EXDEV; + error = EXDEV; goto out; } if (tvp && vrefcnt(tvp) > 1) { - return EBUSY; + error = EBUSY; goto out; } flags = 0x10; /* verify all writes */