Browse Source

qcacld-3.0: Fix memory allocation for zero channel list

Current driver try allocate memory when number of channel are passed
as zero which will cause memory allocation failure.

As part of the fix, when number of channels comes as zero then driver
shouldn't allocate memory and let the firmware take care of it.

CRs-Fixed: 1007196
Change-Id: I51d8a6decbe4c21265e88624e490446a48ea4857
Krunal Soni 9 years ago
parent
commit
eda6d7ec50
1 changed files with 7 additions and 7 deletions
  1. 7 7
      core/wma/src/wma_scan_roam.c

+ 7 - 7
core/wma/src/wma_scan_roam.c

@@ -483,14 +483,14 @@ QDF_STATUS wma_start_scan(tp_wma_handle wma_handle,
 	struct scan_start_params cmd = {0};
 	tSirScanOffloadEvent *scan_event;
 
-	cmd.chan_list = qdf_mem_malloc(sizeof(uint32_t) *
-			   scan_req->channelList.numChannels);
-	if (NULL == cmd.chan_list) {
-		qdf_status = QDF_STATUS_E_NOMEM;
-		goto error;
+	if (scan_req->channelList.numChannels > 0) {
+		cmd.chan_list = qdf_mem_malloc(sizeof(uint32_t) *
+				scan_req->channelList.numChannels);
+		if (NULL == cmd.chan_list) {
+			qdf_status = QDF_STATUS_E_NOMEM;
+			goto error;
+		}
 	}
-	qdf_mem_zero((void *)cmd.chan_list, sizeof(uint32_t) *
-		scan_req->channelList.numChannels);
 	if (scan_req->sessionId > wma_handle->max_bssid) {
 		WMA_LOGE("%s: Invalid vdev_id %d, msg_type : 0x%x", __func__,
 			 scan_req->sessionId, msg_type);