summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrunal Soni <ksoni@codeaurora.org>2016-04-22 10:57:30 -0700
committerVishwajith Upendra <vishwaji@codeaurora.org>2016-04-27 17:00:20 -0700
commiteda6d7ec5077f0dab7b7914f40dfd89a7d2cd2de (patch)
tree2d4c8a83dc1ee4e3c67f8474e46c389402f28716
parentb66fc73614723a88a03102d0d9a214db47ce52bb (diff)
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
-rw-r--r--core/wma/src/wma_scan_roam.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 295cde659da1..fc08eef58e72 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/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);