From 14ff311479065c84c01eb75b7efc94627e230bcf Mon Sep 17 00:00:00 2001 From: Mark D Date: Mon, 19 Nov 2018 10:43:59 -0500 Subject: [PATCH] make WiFi.softAP() more robust (#1925) * make WiFi.softAP() more robust * WiFi.softAP() revert fallback to WIFI_AUTH_OPEN --- libraries/WiFi/src/WiFiAP.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libraries/WiFi/src/WiFiAP.cpp b/libraries/WiFi/src/WiFiAP.cpp index 8f96add9..8b7bbf15 100644 --- a/libraries/WiFi/src/WiFiAP.cpp +++ b/libraries/WiFi/src/WiFiAP.cpp @@ -94,25 +94,28 @@ bool WiFiAPClass::softAP(const char* ssid, const char* passphrase, int channel, if(!WiFi.enableAP(true)) { // enable AP failed + log_e("enable AP first!"); return false; } - if(!ssid || *ssid == 0 || strlen(ssid) > 31) { - // fail SSID too long or missing! + if(!ssid || *ssid == 0) { + // fail SSID missing + log_e("SSID missing!"); return false; } - if(passphrase && (strlen(passphrase) > 63 || strlen(passphrase) < 8)) { - // fail passphrase to long or short! + if(passphrase && (strlen(passphrase) > 0 && strlen(passphrase) < 8)) { + // fail passphrase too short + log_e("passphrase too short!"); return false; } esp_wifi_start(); wifi_config_t conf; - strcpy(reinterpret_cast(conf.ap.ssid), ssid); + strlcpy(reinterpret_cast(conf.ap.ssid), ssid, sizeof(conf.ap.ssid)); conf.ap.channel = channel; - conf.ap.ssid_len = strlen(ssid); + conf.ap.ssid_len = strlen(reinterpret_cast(conf.ap.ssid)); conf.ap.ssid_hidden = ssid_hidden; conf.ap.max_connection = max_connection; conf.ap.beacon_interval = 100; @@ -122,7 +125,7 @@ bool WiFiAPClass::softAP(const char* ssid, const char* passphrase, int channel, *conf.ap.password = 0; } else { conf.ap.authmode = WIFI_AUTH_WPA2_PSK; - strcpy(reinterpret_cast(conf.ap.password), passphrase); + strlcpy(reinterpret_cast(conf.ap.password), passphrase, sizeof(conf.ap.password)); } wifi_config_t conf_current;