From 1987bc1ba09bdda36b0f08b0e179bc0fe59a858f Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Tue, 30 Aug 2011 09:49:19 +0100 Subject: protect against incorrect webcam detection --- src/udev-mgr.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/udev-mgr.c b/src/udev-mgr.c index edc2262..5f197d6 100644 --- a/src/udev-mgr.c +++ b/src/udev-mgr.c @@ -226,7 +226,11 @@ udev_mgr_handle_webcam (UdevMgr* self, vendor = g_udev_device_get_property (device, "ID_VENDOR_ID"); product = g_udev_device_get_property (device, "ID_MODEL_ID"); - + + if (!vendor || !product) { + return; + } + if (action == REMOVE){ if (g_hash_table_lookup (self->webcams_present, product) == NULL){ g_warning ("Got a remove event on a webcam device but we don't have that device in our webcam cache"); @@ -316,18 +320,23 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, { const gchar* type = NULL; type = g_udev_device_get_property (device, "TYPE"); - // apparently anything thats type 3 and SCSI is a Scanner + + if (!type) { + return; + } + + // apparently anything thats type 6 and SCSI is a Scanner if (g_strcmp0 (type, "6") == 0 && action == ADD){ const gchar* manufacturer = NULL; manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ - gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); + gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, label); - g_free(label); + g_free(label); } gchar* random_scanner_name = g_strdup_printf("%p--scanner", self); -- cgit v1.2.3