summaryrefslogtreecommitdiffstats
path: root/drivers/base/firmware_loader/sysfs.h
diff options
context:
space:
mode:
authorRuss Weight <russell.h.weight@intel.com>2022-08-31 02:25:18 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-09-01 17:47:27 +0200
commit789bba82f63c3e81dce426ba457fc7905b30ac6e (patch)
treeac7efbdb2aa65d3e69044fb646951ed63829f974 /drivers/base/firmware_loader/sysfs.h
parentfirmware_loader: Fix use-after-free during unregister (diff)
downloadlinux-789bba82f63c3e81dce426ba457fc7905b30ac6e.tar.xz
linux-789bba82f63c3e81dce426ba457fc7905b30ac6e.zip
firmware_loader: Fix memory leak in firmware upload
In the case of firmware-upload, an instance of struct fw_upload is allocated in firmware_upload_register(). This data needs to be freed in fw_dev_release(). Create a new fw_upload_free() function in sysfs_upload.c to handle the firmware-upload specific memory frees and incorporate the missing kfree call for the fw_upload structure. Fixes: 97730bbb242c ("firmware_loader: Add firmware-upload support") Cc: stable <stable@kernel.org> Signed-off-by: Russ Weight <russell.h.weight@intel.com> Link: https://lore.kernel.org/r/20220831002518.465274-1-russell.h.weight@intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/firmware_loader/sysfs.h')
-rw-r--r--drivers/base/firmware_loader/sysfs.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/base/firmware_loader/sysfs.h b/drivers/base/firmware_loader/sysfs.h
index 5d8ff1675c79..df1d5add698f 100644
--- a/drivers/base/firmware_loader/sysfs.h
+++ b/drivers/base/firmware_loader/sysfs.h
@@ -106,12 +106,17 @@ extern struct device_attribute dev_attr_cancel;
extern struct device_attribute dev_attr_remaining_size;
int fw_upload_start(struct fw_sysfs *fw_sysfs);
+void fw_upload_free(struct fw_sysfs *fw_sysfs);
umode_t fw_upload_is_visible(struct kobject *kobj, struct attribute *attr, int n);
#else
static inline int fw_upload_start(struct fw_sysfs *fw_sysfs)
{
return 0;
}
+
+static inline void fw_upload_free(struct fw_sysfs *fw_sysfs)
+{
+}
#endif
#endif /* __FIRMWARE_SYSFS_H */