diff options
author | Conor Curran <conor.curran@canonical.com> | 2011-08-30 09:49:19 +0100 |
---|---|---|
committer | Conor Curran <conor.curran@canonical.com> | 2011-08-30 09:49:19 +0100 |
commit | 1987bc1ba09bdda36b0f08b0e179bc0fe59a858f (patch) | |
tree | d04e20cec6609b2891052bf54d0152aa67ed210e /src | |
parent | e8375c11497e3389a935a25c229fc98c3b30cb46 (diff) | |
download | ayatana-indicator-session-1987bc1ba09bdda36b0f08b0e179bc0fe59a858f.tar.gz ayatana-indicator-session-1987bc1ba09bdda36b0f08b0e179bc0fe59a858f.tar.bz2 ayatana-indicator-session-1987bc1ba09bdda36b0f08b0e179bc0fe59a858f.zip |
protect against incorrect webcam detection
Diffstat (limited to 'src')
-rw-r--r-- | src/udev-mgr.c | 17 |
1 files 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); |