diff options
author | Kevin F. Haggerty <haggertk@lineageos.org> | 2019-05-06 19:04:17 -0600 |
---|---|---|
committer | Kevin F. Haggerty <haggertk@lineageos.org> | 2019-05-06 19:04:17 -0600 |
commit | b6cf251cd7c396598723a96a7f8fb5672497953c (patch) | |
tree | 4ff2857d3d6b773dc771d0e732356f5bfc1e5519 | |
parent | 7f14d2536298634653b0fe6a4559ee4abb4f10f0 (diff) | |
parent | f632b64f225162de0c7e8dee5953d44bbfcf353f (diff) | |
download | android_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.cpp | 10 |
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; } |