diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-10 01:48:32 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-10 01:48:32 +0000 |
commit | 862ef20479eb5b7ad1b4aebc643a768281b2fd31 (patch) | |
tree | 86eda819ed736c8c47d057c709ea355d5024b8cb | |
parent | bacd76701205413870fdbc4581857604726ddbf5 (diff) | |
parent | 959e96762c33bdb58768f0cac64d4779367af431 (diff) | |
download | wlan-862ef20479eb5b7ad1b4aebc643a768281b2fd31.tar.gz |
Heap-buffer-overflow in send_nl_data() of wifi hal am: 0a1b211537 am: 959e96762c
Change-Id: Ia82d851f011d133b6bc6de4fb17f6b8e311c60c2
-rw-r--r-- | qcwcn/wifi_hal/wifi_hal.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/qcwcn/wifi_hal/wifi_hal.cpp b/qcwcn/wifi_hal/wifi_hal.cpp index 3823439..2a6a9e9 100644 --- a/qcwcn/wifi_hal/wifi_hal.cpp +++ b/qcwcn/wifi_hal/wifi_hal.cpp @@ -1112,6 +1112,12 @@ static int send_nl_data(wifi_handle handle, wifihal_ctrl_req_t *ctrl_msg) goto nl_out; } + if (ctrl_msg->data_len > nlmsg_get_max_size(msg)) + { + ALOGE("%s: Invalid ctrl msg length \n", __FUNCTION__); + retval = -1; + goto nl_out; + } memcpy((char *)msg->nm_nlh, (char *)ctrl_msg->data, ctrl_msg->data_len); if(ctrl_msg->family_name == GENERIC_NL_FAMILY) |