summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Toso <me@victortoso.com>2016-11-14 18:45:18 +0100
committerVictor Toso <me@victortoso.com>2016-11-15 17:37:36 +0100
commitd6275ccfc43993365b601aaab6238e7a447c90d8 (patch)
tree741710d245b207a421810680c226d817ecf0d620
parentd3c29773b1654085ef6653643b1f790985b8454b (diff)
usb-device-manager: handle failures from g_udev_client_new()
As we must handle when GUdevClient creation can fail otherwise code might crash. Signed-off-by: Victor Toso <victortoso@redhat.com> Acked-by: Christophe Fergeau <cfergeau@redhat.com>
-rw-r--r--src/usb-device-manager.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c
index 3d4bd98..efb7454 100644
--- a/src/usb-device-manager.c
+++ b/src/usb-device-manager.c
@@ -321,6 +321,11 @@ static gboolean spice_usb_device_manager_initable_init(GInitable *initable,
/* Start listening for usb devices plug / unplug */
#ifdef USE_GUDEV
priv->udev = g_udev_client_new(subsystems, err);
+ if (priv->udev == NULL) {
+ const gchar *msg = (err != NULL && *err != NULL) ? (*err)->message : "";
+ g_warning("Error initializing GUdevClient - %s", msg);
+ return FALSE;
+ }
g_signal_connect(G_OBJECT(priv->udev), "uevent",
G_CALLBACK(spice_usb_device_manager_uevent_cb), self);
/* Do coldplug (detection of already connected devices) */