Browse Source

qcacld-3.0: Fix scan info memory leak in csr scan callback

In specific scan result callback, before issue connect, check
whether need HW mode change. If HW mode change is unneeded or
return FAILED, need free roam profile in scan info after issue
connect.

Change-Id: I81b37babcbdf474a3cfa58edb8c21dbcbd467d6f
CRs-Fixed: 2373157
Jianmin Zhu 6 năm trước cách đây
mục cha
commit
d443946b3d
1 tập tin đã thay đổi với 3 bổ sung1 xóa
  1. 3 1
      core/sme/src/csr/csr_api_scan.c

+ 3 - 1
core/sme/src/csr/csr_api_scan.c

@@ -1249,7 +1249,7 @@ static void csr_handle_nxt_cmd(struct mac_context *mac_ctx,
 		/* Else: Set hw mode was issued and the saved connect would
 		 * be issued after set hw mode response
 		 */
-		if (QDF_IS_STATUS_SUCCESS(status))
+		if (QDF_IS_STATUS_SUCCESS(ret))
 			return;
 	default:
 		break;
@@ -1402,6 +1402,8 @@ QDF_STATUS csr_scan_for_ssid(struct mac_context *mac_ctx, uint32_t session_id,
 	}
 	pdev_id = wlan_objmgr_pdev_get_pdev_id(mac_ctx->pdev);
 
+	/* Free old memory if any before its overwritten */
+	csr_saved_scan_cmd_free_fields(mac_ctx, session);
 	session->scan_info.profile =
 			qdf_mem_malloc(sizeof(struct csr_roam_profile));
 	if (!session->scan_info.profile)