Re: [PATCH 015/190] Revert "firmware: Fix a reference count leak."

Greg Kroah-Hartman
2021-04-27T16:27:44Z

On Wed, Apr 21, 2021 at 02:58:10PM +0200, Greg Kroah-Hartman wrote:
> This reverts commit fe3c60684377d5ad9b0569b87ed3e26e12c8173b.
>
> Commits from @umn.edu addresses have been found to be submitted in "bad
> faith" to try to test the kernel community's ability to review "known
> malicious" changes. The result of these submissions can be found in a
> paper published at the 42nd IEEE Symposium on Security and Privacy
> entitled, "Open Source Insecurity: Stealthily Introducing
> Vulnerabilities via Hypocrite Commits" written by Qiushi Wu (University
> of Minnesota) and Kangjie Lu (University of Minnesota).
>
> Because of this, all submissions from this group must be reverted from
> the kernel tree and will need to be re-reviewed again to determine if
> they actually are a valid fix. Until that work is complete, remove this
> change to ensure that no problems are being introduced into the
> codebase.
>
> Cc: Qiushi Wu <wu000273@umn.edu>
> Cc: https
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> drivers/firmware/qemu_fw_cfg.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/firmware/qemu_fw_cfg.c b/drivers/firmware/qemu_fw_cfg.c
> index 0078260fbabe..8fa660dde0f6 100644
> --- a/drivers/firmware/qemu_fw_cfg.c
> +++ b/drivers/firmware/qemu_fw_cfg.c
> @@ -608,10 +608,8 @@ static int fw_cfg_register_file(const struct fw_cfg_file *f)
> /* register entry under "/sys/firmware/qemu_fw_cfg/by_key/" */
> err = kobject_init_and_add(&entry->kobj, &fw_cfg_sysfs_entry_ktype,
> fw_cfg_sel_ko, "%d", entry->select);
> - if (err) {
> - kobject_put(&entry->kobj);
> - return err;
> - }
> + if (err)
> + goto err_register;
>
> /* add raw binary content access */
> err = sysfs_create_bin_file(&entry->kobj, &fw_cfg_sysfs_attr_raw);
> @@ -627,6 +625,7 @@ static int fw_cfg_register_file(const struct fw_cfg_file *f)
>
> err_add_raw:
> kobject_del(&entry->kobj);
> +err_register:
> kfree(entry);
> return err;
> }
> --
> 2.31.1
>

Looks correct, dropping.

greg k-h