summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--OWNERS1
-rwxr-xr-xsynadhd/wifi_hal/nan.cpp4
2 files changed, 4 insertions, 1 deletions
diff --git a/OWNERS b/OWNERS
index d8c95cc..dd590d3 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,3 +1,4 @@
arabawy@google.com
etancohen@google.com
kumachang@google.com
+wangroger@google.com
diff --git a/synadhd/wifi_hal/nan.cpp b/synadhd/wifi_hal/nan.cpp
index 9cd01c5..62be87b 100755
--- a/synadhd/wifi_hal/nan.cpp
+++ b/synadhd/wifi_hal/nan.cpp
@@ -1502,11 +1502,13 @@ class NanDiscEnginePrimitive : public WifiCommand
{
nan_hal_resp_t *rsp_vndr_data = NULL;
NanResponseMsg rsp_data;
+ u32 len;
if (reply.get_cmd() != NL80211_CMD_VENDOR || reply.get_vendor_data() == NULL) {
ALOGD("Ignoring reply with cmd = %d", reply.get_cmd());
return NL_SKIP;
}
rsp_vndr_data = (nan_hal_resp_t *)reply.get_vendor_data();
+ len = reply.get_vendor_data_len();
ALOGI("NanDiscEnginePrmitive::handle response\n");
memset(&rsp_data, 0, sizeof(NanResponseMsg));
rsp_data.response_type = get_response_type((WIFI_SUB_COMMAND)rsp_vndr_data->subcmd);
@@ -1536,7 +1538,7 @@ class NanDiscEnginePrimitive : public WifiCommand
rsp_data.body.subscribe_response.subscribe_id = mInstId;
} else if (rsp_data.response_type == NAN_GET_CAPABILITIES) {
memcpy((void *)&rsp_data.body.nan_capabilities, (void *)&rsp_vndr_data->capabilities,
- sizeof(rsp_data.body.nan_capabilities));
+ min(len, sizeof(rsp_data.body.nan_capabilities)));
}
GET_NAN_HANDLE(info)->mHandlers.NotifyResponse(id(), &rsp_data);