aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2011-08-30 09:49:19 +0100
committerConor Curran <conor.curran@canonical.com>2011-08-30 09:49:19 +0100
commit1987bc1ba09bdda36b0f08b0e179bc0fe59a858f (patch)
treed04e20cec6609b2891052bf54d0152aa67ed210e
parente8375c11497e3389a935a25c229fc98c3b30cb46 (diff)
downloadayatana-indicator-session-1987bc1ba09bdda36b0f08b0e179bc0fe59a858f.tar.gz
ayatana-indicator-session-1987bc1ba09bdda36b0f08b0e179bc0fe59a858f.tar.bz2
ayatana-indicator-session-1987bc1ba09bdda36b0f08b0e179bc0fe59a858f.zip
protect against incorrect webcam detection
-rw-r--r--src/udev-mgr.c17
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);