Send presence/absence events when sensor info is NULL accepted/tizen/unified/20191004.003626 submit/tizen/20191002.073539
authorAbhay Agarwal <ay.agarwal@samsung.com>
Wed, 2 Oct 2019 02:10:54 +0000 (11:10 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Wed, 2 Oct 2019 06:49:28 +0000 (15:49 +0900)
This commit sends the presence/absence events to capi with NULL
values in case sensor info received is NULL.

1087646: var_deref_model: Passing null pointer sensor_info to
         __send_sensor_presence_event, which dereferences it.

Change-Id: I9f18cf338e94b41d40211e0d8d7bd3218d775366
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
packaging/ua-manager.spec
ua-daemon/src/ua-manager-core.c

index f120bfa..8ed1fa9 100644 (file)
@@ -1,6 +1,6 @@
 Name:       ua-manager
 Summary:    User awareness manager
-Version:    0.10.9
+Version:    0.10.10
 Release:    1
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
index 2032da7..e0099b8 100644 (file)
@@ -2333,6 +2333,14 @@ void __send_sensor_presence_event(uam_sensor_info_s *sensor_info, unsigned int s
 
        UAM_INFO("sensor 0x[%8.8X]", sensor);
 
+       if (NULL == sensor_info) {
+               _uam_manager_send_event(NULL, UAM_EVENT_PRESENCE_DETECTED,
+                       g_variant_new("(uxiidddd)", sensor, 0, 0, 0, 0, 0, 0, 0));
+               UAM_DBG("Sent UAM_EVENT_PRESENCE_DETECTED for 0x%8.8X", sensor);
+               FUNC_EXIT;
+               return;
+       }
+
        if (UAM_SENSOR_BITMASK_LIGHT != sensor) {
                _uam_manager_send_event(NULL, UAM_EVENT_PRESENCE_DETECTED,
                        g_variant_new("(uxiidddd)", sensor, sensor_info->timestamp,
@@ -2343,7 +2351,6 @@ void __send_sensor_presence_event(uam_sensor_info_s *sensor_info, unsigned int s
                return;
        }
 
-       ret_if(NULL == sensor_info);
        // service specific light detection threshold
        for (l = services; NULL != l; l = g_slist_next(l)) {
                uam_db_service_info_t *svc = l->data;
@@ -2392,7 +2399,13 @@ void __send_sensor_absence_event(uam_sensor_info_s *sensor_info, unsigned int se
 
        UAM_INFO("sensor 0x[%8.8X]", sensor);
 
-       ret_if(NULL == sensor_info);
+       if (NULL == sensor_info) {
+               _uam_manager_send_event(NULL, UAM_EVENT_ABSENCE_DETECTED,
+                       g_variant_new("(uxiidddd)", sensor, 0, 0, 0, 0, 0, 0, 0));
+               UAM_DBG("Sent UAM_EVENT_ABSENCE_DETECTED for 0x%8.8X", sensor);
+               FUNC_EXIT;
+               return;
+       }
 
        if (UAM_SENSOR_BITMASK_LIGHT != sensor) {
                _uam_manager_send_event(NULL, UAM_EVENT_ABSENCE_DETECTED,