OSDN Git Service

util/error: Fix use-after-free errors reported by Coverity
authorStefan Berger <stefanb@linux.ibm.com>
Thu, 6 Apr 2023 15:43:47 +0000 (11:43 -0400)
committerStefan Berger <stefanb@linux.ibm.com>
Thu, 6 Apr 2023 16:38:42 +0000 (12:38 -0400)
commitcc40b8b8448de351f0d15412f20d428712b2e207
treece21a3ee883dacc136e6b25d01e0e89eca83a026
parent60ca584b8af0de525656f959991a440f8c191f12
util/error: Fix use-after-free errors reported by Coverity

Fix use-after-free errors in the code path that called error_handle(). A
call to error_handle() will now either free the passed Error 'err' or
assign it to '*errp' if '*errp' is currently NULL. This ensures that 'err'
either has been freed or is assigned to '*errp' if this function returns.
Adjust the two callers of this function to not assign the 'err' to '*errp'
themselves, since this is now handled by error_handle().

Fixes: commit 3ffef1a55ca3 ("error: add global &error_warn destination")
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 20230406154347.4100700-1-stefanb@linux.ibm.com
util/error.c