diff options
| -rw-r--r-- | core/sme/src/common/sme_api.c | 6 | ||||
| -rw-r--r-- | core/wma/src/wma_utils.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index de4ce76edcc3..12b75df721f6 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -14127,6 +14127,12 @@ QDF_STATUS sme_ll_stats_clear_req(tHalHandle hHal, pclearStatsReq->statsClearReqMask); QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, "stopReq = %u", pclearStatsReq->stopReq); + if (!sme_is_session_id_valid(hHal, pclearStatsReq->staId)) { + QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR, + "%s: invalid staId %d", + __func__, pclearStatsReq->staId); + return QDF_STATUS_E_INVAL; + } clear_stats_req = qdf_mem_malloc(sizeof(*clear_stats_req)); diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c index 3a973673290b..587dac35941b 100644 --- a/core/wma/src/wma_utils.c +++ b/core/wma/src/wma_utils.c @@ -1837,6 +1837,12 @@ QDF_STATUS wma_process_ll_stats_clear_req(tp_wma_handle wma, return QDF_STATUS_E_FAILURE; } + if (!wma->interfaces[clearReq->staId].handle) { + WMA_LOGE("%s: vdev_id %d handle is NULL", + __func__, clearReq->staId); + return QDF_STATUS_E_FAILURE; + } + cmd.stop_req = clearReq->stopReq; cmd.sta_id = clearReq->staId; cmd.stats_clear_mask = clearReq->statsClearReqMask; |
