]> git.baikalelectronics.ru Git - kernel.git/commit
firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
authorJohan Hovold <johan@kernel.org>
Wed, 1 Dec 2021 13:25:25 +0000 (14:25 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Dec 2021 09:14:52 +0000 (10:14 +0100)
commit72e96b8dfb9e5521ef1b251f62f62ed12838460f
treeb6e009635c950619d5e4d73fcb6c8a717e772e72
parentefa3fe563a1a0b79d83516f11f70a5016032470a
firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries

Commit 6e66b88903ab ("firmware: Fix a reference count leak.") "fixed"
a kobject leak in the file registration helper by properly calling
kobject_put() for the entry in case registration of the object fails
(e.g. due to a name collision).

This would however result in a NULL pointer dereference when the
release function tries to remove the never added entry from the
fw_cfg_entry_cache list.

Fix this by moving the list-removal out of the release function.

Note that the offending commit was one of the benign looking umn.edu
fixes which was reviewed but not reverted. [1][2]

[1] https://lore.kernel.org/r/202105051005.49BFABCE@keescook
[2] https://lore.kernel.org/all/YIg7ZOZvS3a8LjSv@kroah.com

Fixes: 6e66b88903ab ("firmware: Fix a reference count leak.")
Cc: stable@vger.kernel.org # 5.8
Cc: Qiushi Wu <wu000273@umn.edu>
Cc: Kees Cook <keescook@chromium.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20211201132528.30025-2-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/firmware/qemu_fw_cfg.c