diff options
author | Markus Armbruster | 2019-12-04 10:36:14 +0100 |
---|---|---|
committer | Markus Armbruster | 2019-12-18 08:36:15 +0100 |
commit | bc0e339b01b330c55532571ae6fce89b0f8a4a96 (patch) | |
tree | b46fbe66d2f58fcdc48a4a5da1718c51742948f4 /qemu-edid.c | |
parent | hw/acpi: Fix legacy CPU plug error API violations (diff) | |
download | qemu-bc0e339b01b330c55532571ae6fce89b0f8a4a96.tar.gz qemu-bc0e339b01b330c55532571ae6fce89b0f8a4a96.tar.xz qemu-bc0e339b01b330c55532571ae6fce89b0f8a4a96.zip |
hw/core: Fix fit_load_fdt() error API violations
fit_load_fdt() passes @errp to fit_image_addr(), then recovers from
ENOENT failures. Passing @errp is wrong, because it works only as
long as @errp is neither @error_fatal nor @error_abort. Error
recovery dereferences @errp. That's also wrong; see the big comment
in error.h. Error recovery can leave *errp pointing to a freed
Error object. Wrong, it must be null on success. Messed up in
commit 3eb99edb48 "loader-fit: Wean off error_printf()".
No caller actually passes such values, or uses *errp on success.
Fix anyway: splice in a local Error *err, and error_propagate().
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20191204093625.14836-8-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Diffstat (limited to 'qemu-edid.c')
0 files changed, 0 insertions, 0 deletions