summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin F. Haggerty <haggertk@lineageos.org>2019-05-06 19:04:17 -0600
committerKevin F. Haggerty <haggertk@lineageos.org>2019-05-06 19:04:17 -0600
commitb6cf251cd7c396598723a96a7f8fb5672497953c (patch)
tree4ff2857d3d6b773dc771d0e732356f5bfc1e5519
parent7f14d2536298634653b0fe6a4559ee4abb4f10f0 (diff)
parentf632b64f225162de0c7e8dee5953d44bbfcf353f (diff)
downloadandroid_hardware_broadcom_wlan-b6cf251cd7c396598723a96a7f8fb5672497953c.tar.gz
android_hardware_broadcom_wlan-b6cf251cd7c396598723a96a7f8fb5672497953c.tar.bz2
android_hardware_broadcom_wlan-b6cf251cd7c396598723a96a7f8fb5672497953c.zip
Merge tag 'android-9.0.0_r37' into staging/lineage-16.0_merge-android-9.0.0_r37
Android 9.0.0 Release 37 (PQ3A.190505.002) * tag 'android-9.0.0_r37': net: wireless: bcmdhd: add string buffer bound check in wifi_set_epno_list Change-Id: Iff773a80a4d15d415cb3d17e97c0a3d8cfc5c0a8
-rw-r--r--bcmdhd/wifi_hal/gscan.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/bcmdhd/wifi_hal/gscan.cpp b/bcmdhd/wifi_hal/gscan.cpp
index 1ccaf30..4e4ee93 100644
--- a/bcmdhd/wifi_hal/gscan.cpp
+++ b/bcmdhd/wifi_hal/gscan.cpp
@@ -1197,6 +1197,7 @@ public:
}
}
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;
@@ -1258,14 +1259,17 @@ public:
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;
}