Merge cherrypicks of [5745882, 5746123, 5746124, 5746125, 5745544, 5745819, 5746700, 5745883, 5745545, 5746720, 5746344, 5745884, 5745885, 5745886, 5746740, 5746741] into oc-m8-release
Change-Id: Iff7f6320f56051ed0b396c521e65d2cb02cffbec
diff --git a/bcmdhd/wifi_hal/gscan.cpp b/bcmdhd/wifi_hal/gscan.cpp
index d3dc0e7..1b9af17 100644
--- a/bcmdhd/wifi_hal/gscan.cpp
+++ b/bcmdhd/wifi_hal/gscan.cpp
@@ -1180,6 +1180,7 @@
}
}
int createSetupRequest(WifiRequest& request) {
+ char tmp_buf[DOT11_MAX_SSID_LEN + 1];
if (epno_params.num_networks > MAX_EPNO_NETWORKS) {
ALOGE("wrong epno num_networks:%d", epno_params.num_networks);
return WIFI_ERROR_INVALID_ARGS;
@@ -1241,14 +1242,17 @@
if (attr2 == NULL) {
return WIFI_ERROR_OUT_OF_MEMORY;
}
- result = request.put(GSCAN_ATTRIBUTE_EPNO_SSID, ssid_list[i].ssid, DOT11_MAX_SSID_LEN);
- ALOGI("PNO network: SSID %s flags %x auth %x", ssid_list[i].ssid,
+ strlcpy(tmp_buf, ssid_list[i].ssid, sizeof(tmp_buf));
+ result = request.put(GSCAN_ATTRIBUTE_EPNO_SSID, tmp_buf,
+ strlen(tmp_buf));
+ ALOGI("PNO network: SSID %s flags %x auth %x", tmp_buf,
ssid_list[i].flags,
ssid_list[i].auth_bit_field);
if (result < 0) {
return result;
}
- result = request.put_u32(GSCAN_ATTRIBUTE_EPNO_SSID_LEN, strlen(ssid_list[i].ssid));
+ result = request.put_u32(GSCAN_ATTRIBUTE_EPNO_SSID_LEN,
+ strlen(tmp_buf));
if (result < 0) {
return result;
}