Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jul 2014 01:01:20 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r269167 - stable/10/sys/fs/tmpfs
Message-ID:  <201407280101.s6S11KPV008847@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Mon Jul 28 01:01:20 2014
New Revision: 269167
URL: http://svnweb.freebsd.org/changeset/base/269167

Log:
  MFC r268608:
  The tmpfs_link() must not dereference the filesystem-specific data for
  a vnode until it is verified that the vnode indeed belongs to tmpfs mount.

Modified:
  stable/10/sys/fs/tmpfs/tmpfs_vnops.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/tmpfs/tmpfs_vnops.c
==============================================================================
--- stable/10/sys/fs/tmpfs/tmpfs_vnops.c	Mon Jul 28 00:57:28 2014	(r269166)
+++ stable/10/sys/fs/tmpfs/tmpfs_vnops.c	Mon Jul 28 01:01:20 2014	(r269167)
@@ -570,8 +570,6 @@ tmpfs_link(struct vop_link_args *v)
 	MPASS(cnp->cn_flags & HASBUF);
 	MPASS(dvp != vp); /* XXX When can this be false? */
 
-	node = VP_TO_TMPFS_NODE(vp);
-
 	/* XXX: Why aren't the following two tests done by the caller? */
 
 	/* Hard links of directories are forbidden. */
@@ -586,6 +584,8 @@ tmpfs_link(struct vop_link_args *v)
 		goto out;
 	}
 
+	node = VP_TO_TMPFS_NODE(vp);
+
 	/* Ensure that we do not overflow the maximum number of links imposed
 	 * by the system. */
 	MPASS(node->tn_links <= LINK_MAX);



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