[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
[Qemu-devel] [PATCH for-3.1? 3/3] acpi: fix stringop-truncation warnings, Marc-André Lureau, 2018/11/20