[libvirt] [libvirt-glib/libvirt-gconfig 17/17] gconfig, graphics: Avoid crash when gvir_config_object_new_from_xml() returns NULL
Christophe Fergeau
cfergeau at redhat.com
Thu Apr 21 11:05:45 UTC 2016
This issues is more widespread than that, it would be better to fix it
everywhere in one go (maybe through a gvir_config_object_check_type() or
something like this?)
Christophe
On Tue, Mar 22, 2016 at 11:04:53AM +0100, Fabiano Fidêncio wrote:
> Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> ---
> libvirt-gconfig/libvirt-gconfig-domain-graphics-desktop.c | 3 +++
> libvirt-gconfig/libvirt-gconfig-domain-graphics-rdp.c | 3 +++
> libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.c | 3 +++
> libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c | 3 +++
> libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c | 3 +++
> 5 files changed, 15 insertions(+)
>
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-desktop.c b/libvirt-gconfig/libvirt-gconfig-domain-graphics-desktop.c
> index 7d23b77..092020d 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-desktop.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-desktop.c
> @@ -66,6 +66,9 @@ gvir_config_domain_graphics_desktop_new_from_xml(const gchar *xml,
>
> object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_DESKTOP,
> "graphics", NULL, xml, error);
> + if (object == NULL)
> + return NULL;
> +
> if (g_strcmp0(gvir_config_object_get_attribute(object, NULL, "type"), "desktop") != 0) {
> g_object_unref(G_OBJECT(object));
> return NULL;
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-rdp.c b/libvirt-gconfig/libvirt-gconfig-domain-graphics-rdp.c
> index 4671b13..024c7e9 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-rdp.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-rdp.c
> @@ -66,6 +66,9 @@ gvir_config_domain_graphics_rdp_new_from_xml(const gchar *xml,
>
> object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_RDP,
> "graphics", NULL, xml, error);
> + if (object == NULL)
> + return NULL;
> +
> if (g_strcmp0(gvir_config_object_get_attribute(object, NULL, "type"), "rdp") != 0) {
> g_object_unref(G_OBJECT(object));
> return NULL;
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.c b/libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.c
> index 55d0012..3bb6c98 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.c
> @@ -66,6 +66,9 @@ gvir_config_domain_graphics_sdl_new_from_xml(const gchar *xml,
>
> object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL,
> "graphics", NULL, xml, error);
> + if (object == NULL)
> + return NULL;
> +
> if (g_strcmp0(gvir_config_object_get_attribute(object, NULL, "type"), "sdl") != 0) {
> g_object_unref(G_OBJECT(object));
> return NULL;
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c b/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c
> index 74466d0..9951ab6 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c
> @@ -67,6 +67,9 @@ gvir_config_domain_graphics_spice_new_from_xml(const gchar *xml,
>
> object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE,
> "graphics", NULL, xml, error);
> + if (object == NULL)
> + return NULL;
> +
> if (g_strcmp0(gvir_config_object_get_attribute(object, NULL, "type"), "spice") != 0) {
> g_object_unref(G_OBJECT(object));
> return NULL;
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c b/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c
> index 4bd7b25..1cccb31 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c
> @@ -66,6 +66,9 @@ gvir_config_domain_graphics_vnc_new_from_xml(const gchar *xml,
>
> object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC,
> "graphics", NULL, xml, error);
> + if (object == NULL)
> + return NULL;
> +
> if (g_strcmp0(gvir_config_object_get_attribute(object, NULL, "type"), "vnc") != 0) {
> g_object_unref(G_OBJECT(object));
> return NULL;
> --
> 2.5.0
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160421/78957e1f/attachment-0001.sig>
More information about the libvir-list
mailing list