Use g_slist_append() to copy list instead of g_slist_copy_deep().
Change-Id: If87eb606a1b6f5df6ecc451065e0e5c06ff69ec0
Signed-off-by: Niraj Kumar Goit <niraj.g@samsung.com>
NET_ERR_SECURITY_RESTRICTED = -790, /** Operation is restricted */
NET_ERR_ALREADY_EXISTS = -789, /** Already exists */
NET_ERR_NO_PROFILE = -788, /** There is no profile */
+ NET_ERR_OUT_OF_MEMORY = -787, /** Failed to allocate memory */
/** WiFi driver on/off failed */
NET_ERR_WIFI_DRIVER_FAILURE = -699,
* @retval #WIFI_MANAGER_ERROR_INVALID_OPERATION Invalid operation
* @retval #WIFI_MANAGER_ERROR_OPERATION_FAILED Operation failed
* @retval #WIFI_MANAGER_ERROR_PERMISSION_DENIED Permission Denied
+ * @retval #WIFI_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
* @retval #WIFI_MANAGER_ERROR_NOT_SUPPORTED Not supported
* @post This function invokes wifi_manager_scan_finished_cb().
*/
else if (multi_scan_type[WIFI_MULTI_SCAN_FREQ] == true)
request_table[NETWORK_REQUEST_TYPE_MULTI_SCAN].multi_scan_type = WIFI_MULTI_SCAN_FREQ;
- request_table[NETWORK_REQUEST_TYPE_MULTI_SCAN].multi_scan_list = g_slist_copy_deep(multi_scan_list, (GCopyFunc)g_try_malloc0, NULL);
+ wifi_manager_multi_scan_ap_s *temp = NULL;
+ for (GSList *list = multi_scan_list; list; list = list->next) {
+ temp = (wifi_manager_multi_scan_ap_s*)g_try_malloc0(sizeof(wifi_manager_multi_scan_ap_s));
+ if (!temp) {
+ WIFI_LOG(WIFI_ERROR, "Failed to allocate memory"); //LCOV_EXCL_LINE
+ return NET_ERR_OUT_OF_MEMORY; //LCOV_EXCL_LINE
+ }
+ g_strlcpy(temp->str, ((wifi_manager_multi_scan_ap_s *)list->data)->str, NET_WLAN_ESSID_LEN);
+ temp->flag = ((wifi_manager_multi_scan_ap_s *)list->data)->flag;
+
+ request_table[NETWORK_REQUEST_TYPE_MULTI_SCAN].multi_scan_list = g_slist_append(
+ request_table[NETWORK_REQUEST_TYPE_MULTI_SCAN].multi_scan_list, temp);
+ }
Error = _net_dbus_multi_scan_request(multi_scan_list);
if (Error != NET_ERR_NONE) {
return WIFI_MANAGER_ERROR_PERMISSION_DENIED; //LCOV_EXCL_LINE
} else if (rv == NET_ERR_INVALID_OPERATION) {
return WIFI_MANAGER_ERROR_INVALID_OPERATION; //LCOV_EXCL_LINE
+ } else if (rv == NET_ERR_OUT_OF_MEMORY) {
+ return WIFI_MANAGER_ERROR_OUT_OF_MEMORY; //LCOV_EXCL_LINE
} else if (rv == NET_ERR_NONE) {
__set_multi_scan_cb(wifi, callback, user_data);
return WIFI_MANAGER_ERROR_NONE;