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

Commit 5b980b01 authored by Pavel Shilovsky's avatar Pavel Shilovsky Committed by Steve French
Browse files

CIFS: Fix ERR_PTR dereference in cifs_get_root



move it to the beginning of the loop.

Signed-off-by: default avatarPavel Shilovsky <piastryyy@gmail.com>
Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 9438fabb
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -548,6 +548,12 @@ cifs_get_root(struct smb_vol *vol, struct super_block *sb)
		struct inode *dir = dentry->d_inode;
		struct inode *dir = dentry->d_inode;
		struct dentry *child;
		struct dentry *child;


		if (!dir) {
			dput(dentry);
			dentry = ERR_PTR(-ENOENT);
			break;
		}

		/* skip separators */
		/* skip separators */
		while (*s == sep)
		while (*s == sep)
			s++;
			s++;
@@ -563,10 +569,6 @@ cifs_get_root(struct smb_vol *vol, struct super_block *sb)
		mutex_unlock(&dir->i_mutex);
		mutex_unlock(&dir->i_mutex);
		dput(dentry);
		dput(dentry);
		dentry = child;
		dentry = child;
		if (!dentry->d_inode) {
			dput(dentry);
			dentry = ERR_PTR(-ENOENT);
		}
	} while (!IS_ERR(dentry));
	} while (!IS_ERR(dentry));
	_FreeXid(xid);
	_FreeXid(xid);
	kfree(full_path);
	kfree(full_path);