Fixed invalid read issue 65/186765/1 submit/tizen/20180814.075657 submit/tizen/20180815.221347
authorSaurav Babu <saurav.babu@samsung.com>
Tue, 14 Aug 2018 07:21:13 +0000 (12:51 +0530)
committerSaurav Babu <saurav.babu@samsung.com>
Tue, 14 Aug 2018 07:21:13 +0000 (12:51 +0530)
==4662== Invalid read of size 4
==4662==    at 0x491D9EC: g_slist_last (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==  Address 0x514dfd4 is 0 bytes after a block of size 4 alloc'd
==4662==    at 0x484801C: calloc (vg_replace_malloc.c:711)
==4662==    by 0x489216B: _wifi_specific_scan_create (wifi_internal.c:3341)
==4662==    by 0x48985E7: wifi_manager_specific_scan_create (wifi_manager.c:1678)
==4662==    by 0x10F821: test_wifi_manager_specific_ap_start_multi_scan (wifi_manager_test.c:2972)
==4662==    by 0x11022B: test_thread (wifi_manager_test.c:3420)
==4662==    by 0x48FD8E7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x48FDC77: ??? (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x48FDFD7: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x10B353: main (wifi_manager_test.c:3215)
==4662==
==4662== Invalid write of size 4
==4662==    at 0x491DA34: g_slist_append (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x4892213: _wifi_specific_scan_set_ssid (wifi_internal.c:3365)
==4662==    by 0x10F92F: test_wifi_manager_specific_ap_start_multi_scan (wifi_manager_test.c:3001)
==4662==    by 0x11022B: test_thread (wifi_manager_test.c:3420)
==4662==    by 0x48FD8E7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x48FDC77: ??? (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x48FDFD7: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x10B353: main (wifi_manager_test.c:3215)
==4662==  Address 0x514dfd4 is 0 bytes after a block of size 4 alloc'd
==4662==    at 0x484801C: calloc (vg_replace_malloc.c:711)
==4662==    by 0x489216B: _wifi_specific_scan_create (wifi_internal.c:3341)
==4662==    by 0x48985E7: wifi_manager_specific_scan_create (wifi_manager.c:1678)
==4662==    by 0x10F821: test_wifi_manager_specific_ap_start_multi_scan (wifi_manager_test.c:2972)
==4662==    by 0x11022B: test_thread (wifi_manager_test.c:3420)
==4662==    by 0x48FD8E7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x48FDC77: ??? (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x48FDFD7: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.2)
==4662==    by 0x10B353: main (wifi_manager_test.c:3215)

Change-Id: I5aac1a17c015925785304315940e14583ae9dec5
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
src/wifi_internal.c

index cca7325d17bbd2f6bab7c82054ca1d0a7357c66d..411daa5d4b714b700ec0d80ada6ea3d57ead090b 100755 (executable)
@@ -3338,13 +3338,15 @@ void _wifi_remove_from_multi_scan_list(wifi_manager_specific_scan_h specific_sca
 
 int _wifi_specific_scan_create(wifi_manager_specific_scan_h *specific_scan)
 {
-       *specific_scan = g_try_malloc0(sizeof(int));
+       GSList *list = g_slist_alloc();
 
-       if (*specific_scan == NULL) {
+       if (list == NULL) {
                WIFI_LOG(WIFI_ERROR, "Failed to create specific scan handle"); //LCOV_EXCL_LINE
                return WIFI_MANAGER_ERROR_OUT_OF_MEMORY; //LCOV_EXCL_LINE
        }
 
+       *specific_scan = list;
+
        WIFI_LOG(WIFI_INFO, "New specific scan handle[%p]", *specific_scan);
        return WIFI_MANAGER_ERROR_NONE;
 }