[PATCH v2] ui/console-vc: Silence warning about sprintf() on OpenBSD

Thomas Huth posted 1 patch 1 week ago
ui/console-vc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH v2] ui/console-vc: Silence warning about sprintf() on OpenBSD
Posted by Thomas Huth 1 week ago
The linker on OpenBSD complains:

 ld: warning: console-vc.c:824 (../src/ui/console-vc.c:824)([...]):
 warning: sprintf() is often misused, please use snprintf()

Using g_strdup_printf() is certainly better here, so let's switch
to that function instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 v2: Use g_strdup_printf() instead of snprintf()

 ui/console-vc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ui/console-vc.c b/ui/console-vc.c
index 8393d532e7..53fcee88f4 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -648,7 +648,7 @@ static void vc_putchar(VCChardev *vc, int ch)
     QemuTextConsole *s = vc->console;
     int i;
     int x, y;
-    char response[40];
+    g_autofree char *response = NULL;
 
     switch(vc->state) {
     case TTY_STATE_NORM:
@@ -821,7 +821,7 @@ static void vc_putchar(VCChardev *vc, int ch)
                     break;
                 case 6:
                     /* report cursor position */
-                    sprintf(response, "\033[%d;%dR",
+                    response = g_strdup_printf("\033[%d;%dR",
                            (s->y_base + s->y) % s->total_height + 1,
                             s->x + 1);
                     vc_respond_str(vc, response);
-- 
2.47.0
Re: [PATCH v2] ui/console-vc: Silence warning about sprintf() on OpenBSD
Posted by Michael Tokarev 4 days, 4 hours ago
15.10.2024 14:25, Thomas Huth wrote:
> The linker on OpenBSD complains:
> 
>   ld: warning: console-vc.c:824 (../src/ui/console-vc.c:824)([...]):
>   warning: sprintf() is often misused, please use snprintf()
> 
> Using g_strdup_printf() is certainly better here, so let's switch
> to that function instead.

Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>

Queued for qemu-trivial, thanks!

/mjt
Re: [PATCH v2] ui/console-vc: Silence warning about sprintf() on OpenBSD
Posted by Richard Henderson 1 week ago
On 10/15/24 04:25, Thomas Huth wrote:
> The linker on OpenBSD complains:
> 
>   ld: warning: console-vc.c:824 (../src/ui/console-vc.c:824)([...]):
>   warning: sprintf() is often misused, please use snprintf()
> 
> Using g_strdup_printf() is certainly better here, so let's switch
> to that function instead.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   v2: Use g_strdup_printf() instead of snprintf()
> 
>   ui/console-vc.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/ui/console-vc.c b/ui/console-vc.c
> index 8393d532e7..53fcee88f4 100644
> --- a/ui/console-vc.c
> +++ b/ui/console-vc.c
> @@ -648,7 +648,7 @@ static void vc_putchar(VCChardev *vc, int ch)
>       QemuTextConsole *s = vc->console;
>       int i;
>       int x, y;
> -    char response[40];
> +    g_autofree char *response = NULL;
>   
>       switch(vc->state) {
>       case TTY_STATE_NORM:
> @@ -821,7 +821,7 @@ static void vc_putchar(VCChardev *vc, int ch)
>                       break;
>                   case 6:
>                       /* report cursor position */
> -                    sprintf(response, "\033[%d;%dR",
> +                    response = g_strdup_printf("\033[%d;%dR",
>                              (s->y_base + s->y) % s->total_height + 1,
>                               s->x + 1);
>                       vc_respond_str(vc, response);

Could be better by limiting the scope of the variable to this case.
But either way,

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
Re: [PATCH v2] ui/console-vc: Silence warning about sprintf() on OpenBSD
Posted by Thomas Huth 1 week ago
On 15/10/2024 16.47, Richard Henderson wrote:
> On 10/15/24 04:25, Thomas Huth wrote:
>> The linker on OpenBSD complains:
>>
>>   ld: warning: console-vc.c:824 (../src/ui/console-vc.c:824)([...]):
>>   warning: sprintf() is often misused, please use snprintf()
>>
>> Using g_strdup_printf() is certainly better here, so let's switch
>> to that function instead.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>   v2: Use g_strdup_printf() instead of snprintf()
>>
>>   ui/console-vc.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/ui/console-vc.c b/ui/console-vc.c
>> index 8393d532e7..53fcee88f4 100644
>> --- a/ui/console-vc.c
>> +++ b/ui/console-vc.c
>> @@ -648,7 +648,7 @@ static void vc_putchar(VCChardev *vc, int ch)
>>       QemuTextConsole *s = vc->console;
>>       int i;
>>       int x, y;
>> -    char response[40];
>> +    g_autofree char *response = NULL;
>>       switch(vc->state) {
>>       case TTY_STATE_NORM:
>> @@ -821,7 +821,7 @@ static void vc_putchar(VCChardev *vc, int ch)
>>                       break;
>>                   case 6:
>>                       /* report cursor position */
>> -                    sprintf(response, "\033[%d;%dR",
>> +                    response = g_strdup_printf("\033[%d;%dR",
>>                              (s->y_base + s->y) % s->total_height + 1,
>>                               s->x + 1);
>>                       vc_respond_str(vc, response);
> 
> Could be better by limiting the scope of the variable to this case.

I tried that first, but then I need curly braces around the whole case block 
to avoid compiler warnings, which is ugly, too, so I decided to keep it at 
the top.

  Thomas


Re: [PATCH v2] ui/console-vc: Silence warning about sprintf() on OpenBSD
Posted by Alex Bennée 1 week ago
Thomas Huth <thuth@redhat.com> writes:

> The linker on OpenBSD complains:
>
>  ld: warning: console-vc.c:824 (../src/ui/console-vc.c:824)([...]):
>  warning: sprintf() is often misused, please use snprintf()
>
> Using g_strdup_printf() is certainly better here, so let's switch
> to that function instead.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
Re: [PATCH v2] ui/console-vc: Silence warning about sprintf() on OpenBSD
Posted by Marc-André Lureau 1 week ago
On Tue, Oct 15, 2024 at 3:25 PM Thomas Huth <thuth@redhat.com> wrote:
>
> The linker on OpenBSD complains:
>
>  ld: warning: console-vc.c:824 (../src/ui/console-vc.c:824)([...]):
>  warning: sprintf() is often misused, please use snprintf()
>
> Using g_strdup_printf() is certainly better here, so let's switch
> to that function instead.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

> ---
>  v2: Use g_strdup_printf() instead of snprintf()
>
>  ui/console-vc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/ui/console-vc.c b/ui/console-vc.c
> index 8393d532e7..53fcee88f4 100644
> --- a/ui/console-vc.c
> +++ b/ui/console-vc.c
> @@ -648,7 +648,7 @@ static void vc_putchar(VCChardev *vc, int ch)
>      QemuTextConsole *s = vc->console;
>      int i;
>      int x, y;
> -    char response[40];
> +    g_autofree char *response = NULL;
>
>      switch(vc->state) {
>      case TTY_STATE_NORM:
> @@ -821,7 +821,7 @@ static void vc_putchar(VCChardev *vc, int ch)
>                      break;
>                  case 6:
>                      /* report cursor position */
> -                    sprintf(response, "\033[%d;%dR",
> +                    response = g_strdup_printf("\033[%d;%dR",
>                             (s->y_base + s->y) % s->total_height + 1,
>                              s->x + 1);
>                      vc_respond_str(vc, response);
> --
> 2.47.0
>