qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] exec.c: Initialize sa_flags passed to sigaction


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH] exec.c: Initialize sa_flags passed to sigaction()
Date: Tue, 15 May 2018 16:40:34 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0

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 <address@hidden>
---
  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é <address@hidden>

          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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]