Commit e0dd3005 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Zheng Zengkai
Browse files

configfs: return -ENAMETOOLONG earlier in configfs_lookup

mainline inclusion
from mainline-v5.15-rc1
commit 417b962d
category: bugfix
bugzilla: 187567, https://gitee.com/openeuler/kernel/issues/I5PK1G
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/configfs/dir.c?h=v6.0-rc3&id=417b962ddeca2b70eb72d28c87541bdad4e234f8



--------------------------------

Just like most other file systems: get the simple checks out of the
way first.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
Reviewed-by: default avatarZhang Yi <yi.zhang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent f78a0ec5
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -465,6 +465,9 @@ static struct dentry * configfs_lookup(struct inode *dir,
	int found = 0;
	int err;

	if (dentry->d_name.len > NAME_MAX)
		return ERR_PTR(-ENAMETOOLONG);

	/*
	 * Fake invisibility if dir belongs to a group/default groups hierarchy
	 * being attached
@@ -495,8 +498,6 @@ static struct dentry * configfs_lookup(struct inode *dir,
		 * If it doesn't exist and it isn't a NOT_PINNED item,
		 * it must be negative.
		 */
		if (dentry->d_name.len > NAME_MAX)
			return ERR_PTR(-ENAMETOOLONG);
		d_add(dentry, NULL);
		return NULL;
	}