Fix dereference of NULL issue 85/224185/2 accepted/tizen/unified/20200210.131841 submit/tizen/20200207.062602
authorDoHyun Pyun <dh79.pyun@samsung.com>
Fri, 7 Feb 2020 03:55:04 +0000 (12:55 +0900)
committerPyun DoHyun <dh79.pyun@samsung.com>
Fri, 7 Feb 2020 05:57:52 +0000 (05:57 +0000)
Issues was reported by a static analyzer.

Change-Id: If99919b3da86b6d09675120fa9ee1d6607290f6d
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>
bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c

index fbe1660..2b39e01 100644 (file)
@@ -2096,14 +2096,18 @@ int _bt_stop_le_scan(const char *sender)
 
        /* Check scanning is in progress or not */
        scanner = __bt_find_scanner_from_list(sender);
-       if (scanner == NULL || scanner->is_scanning == FALSE)
+       if (scanner == NULL)
+               return BLUETOOTH_ERROR_NOT_IN_OPERATION;
+
+       if (scanner->is_scanning == FALSE)
                return BLUETOOTH_ERROR_NOT_IN_OPERATION;
 
        scanner->is_scanning = FALSE;
 
        for (l = scanner_list; l != NULL; l = g_slist_next(l)) {
-               scanner = l->data;
-               if (scanner->is_scanning == TRUE)
+               bt_adapter_le_scanner_t *scanner_iter = l->data;
+
+               if (scanner_iter->is_scanning == TRUE)
                        next_scanning = TRUE;
        }
 
@@ -2131,7 +2135,6 @@ int _bt_stop_le_scan(const char *sender)
 
        _bt_unregister_all_scan_filters(sender);
 
-       scanner = __bt_find_scanner_from_list(sender);
        scanner_list = g_slist_remove(scanner_list, scanner);
        __bt_free_le_scanner(scanner);