qcacld-3.0: Allocate memory from heap to wma_set_stakey

This change I29209576622bc2495a7ce3064e82efca2e70d19a was to fix a
memory leak, but ibss creating peer pass a pointer on stack to
wma_set_stakey API, it makes a regression.

Fix it by passing all pointer from heap to wma_set_stakey API.

Change-Id: I178e4b6a15aa24faae78d9846427b3292d11a1a4
CRs-Fixed: 2455529
This commit is contained in:
Will Huang 2019-05-20 10:28:12 +08:00 • committed by nshrivas
commit f108e02f54

View file

@ -2080,17 +2080,21 @@ QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev,
/* for each remote ibss peer, clear its keys */
if (wma_is_vdev_in_ibss_mode(wma, vdev_id) &&
qdf_mem_cmp(peer_addr, mac_addr_raw, QDF_MAC_ADDR_SIZE)) {
tSetStaKeyParams key_info;
tpSetStaKeyParams key_info;
key_info = qdf_mem_malloc(sizeof(*key_info));
if (!key_info) {
return QDF_STATUS_E_NOMEM;
}
WMA_LOGD("%s: remote ibss peer %pM key clearing\n", __func__,
peer_addr);
qdf_mem_zero(&key_info, sizeof(key_info));
key_info.smesessionId = vdev_id;
qdf_mem_copy(key_info.peer_macaddr.bytes, peer_addr,
qdf_mem_zero(key_info, sizeof(*key_info));
key_info->smesessionId = vdev_id;
qdf_mem_copy(key_info->peer_macaddr.bytes, peer_addr,
QDF_MAC_ADDR_SIZE);
key_info.sendRsp = false;
key_info->sendRsp = false;
wma_set_stakey(wma, &key_info);
wma_set_stakey(wma, key_info);
}
return QDF_STATUS_SUCCESS;