On 03/27/2018 05:21 PM, Eric Blake wrote: > gcc 8 on rawhide is picky enough to complain: > > /home/dummy/qemu/dump.c: In function 'create_header32': > /home/dummy/qemu/dump.c:817:5: error: 'strncpy' output truncated before > terminating nul copying 8 bytes from a string of the same length > [-Werror=stringop-truncation] > strncpy(dh->signature, KDUMP_SIGNATURE, strlen(KDUMP_SIGNATURE)); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > But we already have SIG_LEN defined as the right length without needing > to do a strlen(), and memcpy() is better than strncpy() when we know > we do not want a trailing NUL byte. > > Signed-off-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > dump.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/dump.c b/dump.c > index 669f715274d..b54cd42b217 100644 > --- a/dump.c > +++ b/dump.c > @@ -814,7 +814,7 @@ static void create_header32(DumpState *s, Error **errp) > size = sizeof(DiskDumpHeader32); > dh = g_malloc0(size); > > - strncpy(dh->signature, KDUMP_SIGNATURE, strlen(KDUMP_SIGNATURE)); > + memcpy(dh->signature, KDUMP_SIGNATURE, SIG_LEN); > dh->header_version = cpu_to_dump32(s, 6); > block_size = s->dump_info.page_size; > dh->block_size = cpu_to_dump32(s, block_size); > @@ -926,7 +926,7 @@ static void create_header64(DumpState *s, Error **errp) > size = sizeof(DiskDumpHeader64); > dh = g_malloc0(size); > > - strncpy(dh->signature, KDUMP_SIGNATURE, strlen(KDUMP_SIGNATURE)); > + memcpy(dh->signature, KDUMP_SIGNATURE, SIG_LEN); > dh->header_version = cpu_to_dump32(s, 6); > block_size = s->dump_info.page_size; > dh->block_size = cpu_to_dump32(s, block_size); >