From: Jia-Ju Bai Date: Wed, 24 Mar 2021 02:34:05 +0000 (-0700) Subject: base: dd: fix error return code of driver_sysfs_add() X-Git-Tag: v5.13-rc1~174^2~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d225ef6fda7ce9ff7d28764bd1cceea2d0215e8b;p=thirdparty%2Fkernel%2Flinux.git base: dd: fix error return code of driver_sysfs_add() When device_create_file() fails and returns a non-zero value, no error return code of driver_sysfs_add() is assigned. To fix this bug, ret is assigned with the return value of device_create_file(), and then ret is checked. Reported-by: TOTE Robot Signed-off-by: Jia-Ju Bai Link: https://lore.kernel.org/r/20210324023405.12465-1-baijiaju1990@gmail.com Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/base/dd.c b/drivers/base/dd.c index dd327cfd6843e..20b69b5e0e912 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -415,8 +415,11 @@ static int driver_sysfs_add(struct device *dev) if (ret) goto rm_dev; - if (!IS_ENABLED(CONFIG_DEV_COREDUMP) || !dev->driver->coredump || - !device_create_file(dev, &dev_attr_coredump)) + if (!IS_ENABLED(CONFIG_DEV_COREDUMP) || !dev->driver->coredump) + return 0; + + ret = device_create_file(dev, &dev_attr_coredump); + if (!ret) return 0; sysfs_remove_link(&dev->kobj, "driver");