Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f30b9c11 authored by Jeff Layton's avatar Jeff Layton Committed by Steve French
Browse files

cifs: don't allow cifs_iget to match inodes of the wrong type



If the type is different from what we think it should be, then don't
match the existing inode.

Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 9f841593
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -724,9 +724,14 @@ cifs_find_inode(struct inode *inode, void *opaque)
{
	struct cifs_fattr *fattr = (struct cifs_fattr *) opaque;

	/* don't match inode with different uniqueid */
	if (CIFS_I(inode)->uniqueid != fattr->cf_uniqueid)
		return 0;

	/* don't match inode of different type */
	if ((inode->i_mode & S_IFMT) != (fattr->cf_mode & S_IFMT))
		return 0;

	/*
	 * uh oh -- it's a directory. We can't use it since hardlinked dirs are
	 * verboten. Disable serverino and return it as if it were found, the