wifi_prov_mgr: Added check for passphrase length in softAP scheme

Closes https://github.com/espressif/esp-idf/issues/8063
This commit is contained in:
Laukik Hase 2021-12-27 10:36:56 +05:30
parent 214d62b9ad
commit 474ff3e38f
2 changed files with 7 additions and 1 deletions

View File

@ -175,10 +175,15 @@ static esp_err_t set_config_service(void *config, const char *service_name, cons
}
wifi_prov_softap_config_t *softap_config = (wifi_prov_softap_config_t *) config;
strlcpy(softap_config->ssid, service_name, sizeof(softap_config->ssid));
if (service_key) {
const int service_key_len = strlen(service_key);
if (service_key_len < 8 || service_key_len >= sizeof(softap_config->password)) {
ESP_LOGE(TAG, "Incorrect passphrase length for softAP: %d (Expected: Min - 8, Max - 64)", service_key_len);
return ESP_ERR_INVALID_ARG;
}
strlcpy(softap_config->password, service_key, sizeof(softap_config->password));
}
strlcpy(softap_config->ssid, service_name, sizeof(softap_config->ssid));
return ESP_OK;
}

View File

@ -265,6 +265,7 @@ void app_main(void)
/* What is the service key (could be NULL)
* This translates to :
* - Wi-Fi password when scheme is wifi_prov_scheme_softap
* (Minimum expected length: 8, maximum 64 for WPA2-PSK)
* - simply ignored when scheme is wifi_prov_scheme_ble
*/
const char *service_key = NULL;