Markus Armbruster bc0e339b01 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>
2019-12-18 08:36:15 +01:00
..
2019-08-16 13:31:53 +02:00
2019-10-28 15:12:38 +00:00
2019-11-05 23:33:12 +01:00
2019-11-12 10:34:23 +01:00
2019-08-16 13:31:53 +02:00
2019-08-16 13:31:53 +02:00
2019-08-16 13:31:53 +02:00
2019-08-16 13:31:53 +02:00
2019-09-18 10:18:51 +01:00