mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 00:32:25 -04:00
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. Otherwise, it might access random memory, at least in the debug kernel. Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
This commit is contained in:
parent
57ef02ff0f
commit
706f80801d
1 changed files with 2 additions and 2 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue