qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] qom: Fix default values in help
@ 2021-03-24  8:41 Markus Armbruster
  2021-03-24  8:48 ` Marc-André Lureau
  2021-03-24  9:00 ` Thomas Huth
  0 siblings, 2 replies; 3+ messages in thread
From: Markus Armbruster @ 2021-03-24  8:41 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, pbonzini, thuth, marcandre.lureau, michael.roth

Output of default values in device help is broken:

    $ ./qemu-system-x86_64 -S -display none -monitor stdio
    QEMU 5.2.50 monitor - type 'help' for more information
    (qemu) device_add pvpanic,help
    pvpanic options:
      events=<uint8>         -  (default: (null))
      ioport=<uint16>        -  (default: (null))
      pvpanic[0]=<child<qemu:memory-region>>

The "(null)" is glibc printing a null pointer.  Other systems crash
instead.  Having a help request crash a running VM can really spoil
your day.

Root cause is a botched replacement of qstring_free() by
g_string_free(): to get the string back, we need to pass true to the
former, but false to the latter.  Fix the argument.

Fixes: eab3a4678b07267c39e7290a6e9e7690b1d2a521
Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qom/object_interfaces.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index c3324b0f86..bd8a947a63 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -159,7 +159,7 @@ char *object_property_help(const char *name, const char *type,
     }
     if (defval) {
         g_autofree char *def_json = g_string_free(qobject_to_json(defval),
-                                                  true);
+                                                  false);
         g_string_append_printf(str, " (default: %s)", def_json);
     }
 
-- 
2.26.3



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] qom: Fix default values in help
  2021-03-24  8:41 [PATCH] qom: Fix default values in help Markus Armbruster
@ 2021-03-24  8:48 ` Marc-André Lureau
  2021-03-24  9:00 ` Thomas Huth
  1 sibling, 0 replies; 3+ messages in thread
From: Marc-André Lureau @ 2021-03-24  8:48 UTC (permalink / raw)
  To: Markus Armbruster
  Cc: Peter Maydell, Bonzini, Paolo, Thomas Huth, qemu-devel, michael.roth

[-- Attachment #1: Type: text/plain, Size: 1745 bytes --]

On Wed, Mar 24, 2021 at 12:41 PM Markus Armbruster <armbru@redhat.com>
wrote:

> Output of default values in device help is broken:
>
>     $ ./qemu-system-x86_64 -S -display none -monitor stdio
>     QEMU 5.2.50 monitor - type 'help' for more information
>     (qemu) device_add pvpanic,help
>     pvpanic options:
>       events=<uint8>         -  (default: (null))
>       ioport=<uint16>        -  (default: (null))
>       pvpanic[0]=<child<qemu:memory-region>>
>
> The "(null)" is glibc printing a null pointer.  Other systems crash
> instead.  Having a help request crash a running VM can really spoil
> your day.
>
> Root cause is a botched replacement of qstring_free() by
> g_string_free(): to get the string back, we need to pass true to the
> former, but false to the latter.  Fix the argument.
>
> Fixes: eab3a4678b07267c39e7290a6e9e7690b1d2a521
> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>

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

---
>  qom/object_interfaces.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
> index c3324b0f86..bd8a947a63 100644
> --- a/qom/object_interfaces.c
> +++ b/qom/object_interfaces.c
> @@ -159,7 +159,7 @@ char *object_property_help(const char *name, const
> char *type,
>      }
>      if (defval) {
>          g_autofree char *def_json = g_string_free(qobject_to_json(defval),
> -                                                  true);
> +                                                  false);
>          g_string_append_printf(str, " (default: %s)", def_json);
>      }
>
> --
> 2.26.3
>
>

[-- Attachment #2: Type: text/html, Size: 2635 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] qom: Fix default values in help
  2021-03-24  8:41 [PATCH] qom: Fix default values in help Markus Armbruster
  2021-03-24  8:48 ` Marc-André Lureau
@ 2021-03-24  9:00 ` Thomas Huth
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Huth @ 2021-03-24  9:00 UTC (permalink / raw)
  To: Markus Armbruster, qemu-devel
  Cc: peter.maydell, pbonzini, marcandre.lureau, michael.roth

On 24/03/2021 09.41, Markus Armbruster wrote:
> Output of default values in device help is broken:
> 
>      $ ./qemu-system-x86_64 -S -display none -monitor stdio
>      QEMU 5.2.50 monitor - type 'help' for more information
>      (qemu) device_add pvpanic,help
>      pvpanic options:
>        events=<uint8>         -  (default: (null))
>        ioport=<uint16>        -  (default: (null))
>        pvpanic[0]=<child<qemu:memory-region>>
> 
> The "(null)" is glibc printing a null pointer.  Other systems crash
> instead.  Having a help request crash a running VM can really spoil
> your day.
> 
> Root cause is a botched replacement of qstring_free() by
> g_string_free(): to get the string back, we need to pass true to the
> former, but false to the latter.  Fix the argument.
> 
> Fixes: eab3a4678b07267c39e7290a6e9e7690b1d2a521
> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   qom/object_interfaces.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
> index c3324b0f86..bd8a947a63 100644
> --- a/qom/object_interfaces.c
> +++ b/qom/object_interfaces.c
> @@ -159,7 +159,7 @@ char *object_property_help(const char *name, const char *type,
>       }
>       if (defval) {
>           g_autofree char *def_json = g_string_free(qobject_to_json(defval),
> -                                                  true);
> +                                                  false);
>           g_string_append_printf(str, " (default: %s)", def_json);
>       }
>   
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-24  9:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-24  8:41 [PATCH] qom: Fix default values in help Markus Armbruster
2021-03-24  8:48 ` Marc-André Lureau
2021-03-24  9:00 ` Thomas Huth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).