mirror of https://gitee.com/openkylin/linux.git
sysfs: make __sysfs_add_one() fail if the parent isn't a directory
Currently the kobject based interface guarantees that a parent sysfs_dirent is always a directory; however, the planned kernfs interface will be directly based on sysfs_dirents and the caller may specify non-directory node as the parent. Add an explicit check in __sysfs_add_one() so that such attempts fail with -EINVAL. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c84a3b2779
commit
ae2108ad32
|
@ -429,6 +429,9 @@ int __sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (sysfs_type(parent_sd) != SYSFS_DIR)
|
||||
return -EINVAL;
|
||||
|
||||
sd->s_hash = sysfs_name_hash(sd->s_name, sd->s_ns);
|
||||
sd->s_parent = sysfs_get(parent_sd);
|
||||
|
||||
|
|
Loading…
Reference in New Issue