qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH for-3.1? 2/3] migration: fix stringop-truncation


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH for-3.1? 2/3] migration: fix stringop-truncation warning
Date: Tue, 20 Nov 2018 11:01:24 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0

On 11/20/18 9:27 AM, Marc-André Lureau wrote:
Adding an assert is enough to silence GCC.

~/src/qemu/migration/global_state.c: In function 'global_state_store_running':
~/src/qemu/migration/global_state.c:45:5: error: 'strncpy' specified bound 100 
equals destination size [-Werror=stringop-truncation]
      strncpy((char *)global_state.runstate,
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             state, sizeof(global_state.runstate));
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

(alternatively, we could hard-code "running")

Signed-off-by: Marc-André Lureau <address@hidden>
---
  migration/global_state.c | 1 +
  1 file changed, 1 insertion(+)

Reviewed-by: Eric Blake <address@hidden>

I think this is safe for 3.1, but I know the migration code is particularly wary of assert()s, even when they are non-triggerable (a 100-byte buffer at global_state.runstate is big enough for ALL of the run states, not just RUN_STATE_RUNNING).


diff --git a/migration/global_state.c b/migration/global_state.c
index 8e8ab5c51e..01805c567a 100644
--- a/migration/global_state.c
+++ b/migration/global_state.c
@@ -42,6 +42,7 @@ int global_state_store(void)
  void global_state_store_running(void)
  {
      const char *state = RunState_str(RUN_STATE_RUNNING);
+    assert(strlen(state) < sizeof(global_state.runstate));
      strncpy((char *)global_state.runstate,
             state, sizeof(global_state.runstate));
  }


--
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]