Simplify the code that doesn't need strncpy() since length of string
is already computed.
/home/elmarco/src/qemu/hw/display/edid-generate.c: In function 'edid_desc_text':
/home/elmarco/src/qemu/hw/display/edid-generate.c:168:5: error: 'strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
strncpy((char *)(desc + 5), text, len);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/elmarco/src/qemu/hw/display/edid-generate.c:164:11: note: length computed here
len = strlen(text);
^~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
hw/display/edid-generate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/display/edid-generate.c b/hw/display/edid-generate.c
index bdf5e1d4d4..77d9127344 100644
--- a/hw/display/edid-generate.c
+++ b/hw/display/edid-generate.c
@@ -165,7 +165,7 @@ static void edid_desc_text(uint8_t *desc, uint8_t type,
if (len > 12) {
len = 12;
}
- strncpy((char *)(desc + 5), text, len);
+ memcpy(desc + 5, text, len);
desc[5 + len] = '\n';
}
--
2.19.1.708.g4ede3d42df
Marc-André Lureau <marcandre.lureau@redhat.com> writes:
> Simplify the code that doesn't need strncpy() since length of string
> is already computed.
>
> /home/elmarco/src/qemu/hw/display/edid-generate.c: In function 'edid_desc_text':
> /home/elmarco/src/qemu/hw/display/edid-generate.c:168:5: error: 'strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
> strncpy((char *)(desc + 5), text, len);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qemu/hw/display/edid-generate.c:164:11: note: length computed here
> len = strlen(text);
> ^~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> hw/display/edid-generate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/display/edid-generate.c b/hw/display/edid-generate.c
> index bdf5e1d4d4..77d9127344 100644
> --- a/hw/display/edid-generate.c
> +++ b/hw/display/edid-generate.c
> @@ -165,7 +165,7 @@ static void edid_desc_text(uint8_t *desc, uint8_t type,
> if (len > 12) {
> len = 12;
> }
> - strncpy((char *)(desc + 5), text, len);
> + memcpy(desc + 5, text, len);
> desc[5 + len] = '\n';
> }
Reviewed-by: Markus Armbruster <armbru@redhat.com>
On Sat, Nov 10, 2018 at 03:16:23PM +0400, Marc-André Lureau wrote: > Simplify the code that doesn't need strncpy() since length of string > is already computed. > > /home/elmarco/src/qemu/hw/display/edid-generate.c: In function 'edid_desc_text': > /home/elmarco/src/qemu/hw/display/edid-generate.c:168:5: error: 'strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=] > strncpy((char *)(desc + 5), text, len); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /home/elmarco/src/qemu/hw/display/edid-generate.c:164:11: note: length computed here > len = strlen(text); > ^~~~~~~~~~~~ > cc1: all warnings being treated as errors > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> queued for 3.1 thanks, Gerd
© 2016 - 2026 Red Hat, Inc.