check null pointer before string comparison 45/142545/1 accepted/tizen/unified/20170807.152040 submit/tizen/20170804.092658
authorJengHyun Kang <jhyuni.kang@samsung.com>
Fri, 4 Aug 2017 07:47:00 +0000 (16:47 +0900)
committerJengHyun Kang <jhyuni.kang@samsung.com>
Fri, 4 Aug 2017 07:47:00 +0000 (16:47 +0900)
Change-Id: Ibf99c70a8b3c15aa0603a2ef82c3144dd7322d88

src/e_devicemgr_device.c

index e745f212db802fc840ff1facb7d0fd5a02decbd1..132c45586d58f49f94cbd4e15b3e2a86760e4014 100644 (file)
@@ -109,7 +109,9 @@ _e_devicemgr_del_device(const char *name, const char *identifier, const char *se
 
    EINA_LIST_FOREACH(e_comp_wl->input_device_manager.device_list, l, dev)
      {
-        if ((dev->clas == clas) && (dev->subclas == subclas) && (!strcmp(dev->name, name))  && (!strcmp(dev->identifier, identifier)))
+        if ((dev->clas == clas) && (dev->subclas == subclas) &&
+            (dev->name && (!strcmp(dev->name, name))) &&
+            (dev->identifier && (!strcmp(dev->identifier, identifier))))
           break;
      }
    if (!dev)
@@ -119,14 +121,11 @@ _e_devicemgr_del_device(const char *name, const char *identifier, const char *se
      }
 
    if ((input_devmgr_data->detent.identifier) &&
-       (!strncmp(dev->name, "tizen_detent", sizeof("tizen_detent"))))
+       (dev->name && (!strncmp(dev->name, "tizen_detent", sizeof("tizen_detent")))))
      {
         eina_stringshare_del(input_devmgr_data->detent.identifier);
      }
 
-   if (dev->name) eina_stringshare_del(dev->name);
-   if (dev->identifier) eina_stringshare_del(dev->identifier);
-
    serial = wl_display_next_serial(e_comp_wl->wl.disp);
 
    /* TODO: find the seat corresponding to event */
@@ -151,6 +150,9 @@ _e_devicemgr_del_device(const char *name, const char *identifier, const char *se
           }
      }
 
+   if (dev->name) eina_stringshare_del(dev->name);
+   if (dev->identifier) eina_stringshare_del(dev->identifier);
+
    EINA_LIST_FREE(dev->resources, res)
      {
         device_user_data = wl_resource_get_user_data(res);