On 05/15/2018 03:53 PM, Philippe Mathieu-Daudé wrote:
On 05/15/2018 03:27 PM, Peter Maydell wrote:
Coverity points out that in the user-only version of cpu_abort() we
call sigaction() with a partially initialized struct sigaction
(CID 1005351). Correct the omission.
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
---
exec.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/exec.c b/exec.c
index ffa1099547..bd8833fc9d 100644
--- a/exec.c
+++ b/exec.c
@@ -1124,6 +1124,7 @@ void cpu_abort(CPUState *cpu, const char *fmt, ...)
struct sigaction act;
I'd have used the more generic:
struct sigaction act = { };
That's a gcc/clang extension (although we have used it before,
particularly to shut up buggy versions of clang); better is:
struct sigaction act = { 0 };
if that doesn't trigger the clang bug.
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>
sigfillset(&act.sa_mask);
act.sa_handler = SIG_DFL;
The sigfillset() has to be done after initialization, but you could also
use:
struct sigaction act = {
.sa_handler = SIG_DFL;
};
sigfillset(&act.sa_mask);
as a way to zero-initialize all other fields.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org