From a476228c8c61a6de30e8e397d072cbd089c31841 Mon Sep 17 00:00:00 2001 From: suda-morris <362953310@qq.com> Date: Tue, 11 Jun 2019 15:46:02 +0800 Subject: [PATCH] replace strncpy with strlcpy in wifi examples for safety's sake --- examples/provisioning/custom_config/main/app_prov.c | 3 +-- examples/provisioning/softap_prov/main/app_prov.c | 3 +-- examples/system/console/main/cmd_wifi.c | 4 ++-- examples/wifi/iperf/main/cmd_wifi.c | 6 +++--- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/examples/provisioning/custom_config/main/app_prov.c b/examples/provisioning/custom_config/main/app_prov.c index 1bd773386..83cc4f019 100644 --- a/examples/provisioning/custom_config/main/app_prov.c +++ b/examples/provisioning/custom_config/main/app_prov.c @@ -326,8 +326,7 @@ static esp_err_t start_wifi_ap(const char *ssid, const char *pass) }, }; - strncpy((char *) wifi_config.ap.ssid, ssid, sizeof(wifi_config.ap.ssid)); - wifi_config.ap.ssid_len = strnlen(ssid, sizeof(wifi_config.ap.ssid)); + strlcpy((char *) wifi_config.ap.ssid, ssid, sizeof(wifi_config.ap.ssid)); if (strlen(pass) == 0) { memset(wifi_config.ap.password, 0, sizeof(wifi_config.ap.password)); diff --git a/examples/provisioning/softap_prov/main/app_prov.c b/examples/provisioning/softap_prov/main/app_prov.c index 23e030415..58b5970b2 100644 --- a/examples/provisioning/softap_prov/main/app_prov.c +++ b/examples/provisioning/softap_prov/main/app_prov.c @@ -313,8 +313,7 @@ static esp_err_t start_wifi_ap(const char *ssid, const char *pass) }, }; - strncpy((char *) wifi_config.ap.ssid, ssid, sizeof(wifi_config.ap.ssid)); - wifi_config.ap.ssid_len = strnlen(ssid, sizeof(wifi_config.ap.ssid)); + strlcpy((char *) wifi_config.ap.ssid, ssid, sizeof(wifi_config.ap.ssid)); if (strlen(pass) == 0) { memset(wifi_config.ap.password, 0, sizeof(wifi_config.ap.password)); diff --git a/examples/system/console/main/cmd_wifi.c b/examples/system/console/main/cmd_wifi.c index 039c6b94b..e5eb8a29c 100644 --- a/examples/system/console/main/cmd_wifi.c +++ b/examples/system/console/main/cmd_wifi.c @@ -63,9 +63,9 @@ static bool wifi_join(const char *ssid, const char *pass, int timeout_ms) { initialise_wifi(); wifi_config_t wifi_config = { 0 }; - strncpy((char *) wifi_config.sta.ssid, ssid, sizeof(wifi_config.sta.ssid)); + strlcpy((char *) wifi_config.sta.ssid, ssid, sizeof(wifi_config.sta.ssid)); if (pass) { - strncpy((char *) wifi_config.sta.password, pass, sizeof(wifi_config.sta.password)); + strlcpy((char *) wifi_config.sta.password, pass, sizeof(wifi_config.sta.password)); } ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) ); diff --git a/examples/wifi/iperf/main/cmd_wifi.c b/examples/wifi/iperf/main/cmd_wifi.c index ea130ecd9..960cd22ea 100644 --- a/examples/wifi/iperf/main/cmd_wifi.c +++ b/examples/wifi/iperf/main/cmd_wifi.c @@ -129,7 +129,7 @@ static bool wifi_cmd_sta_join(const char* ssid, const char* pass) strlcpy((char*) wifi_config.sta.ssid, ssid, sizeof(wifi_config.sta.ssid)); if (pass) { - strncpy((char*) wifi_config.sta.password, pass, sizeof(wifi_config.sta.password)); + strlcpy((char*) wifi_config.sta.password, pass, sizeof(wifi_config.sta.password)); } if (bits & CONNECTED_BIT) { @@ -206,14 +206,14 @@ static bool wifi_cmd_ap_set(const char* ssid, const char* pass) }; reconnect = false; - strncpy((char*) wifi_config.ap.ssid, ssid, sizeof(wifi_config.ap.ssid)); + strlcpy((char*) wifi_config.ap.ssid, ssid, sizeof(wifi_config.ap.ssid)); if (pass) { if (strlen(pass) != 0 && strlen(pass) < 8) { reconnect = true; ESP_LOGE(TAG, "password less than 8"); return false; } - strncpy((char*) wifi_config.ap.password, pass, sizeof(wifi_config.ap.password)); + strlcpy((char*) wifi_config.ap.password, pass, sizeof(wifi_config.ap.password)); } if (strlen(pass) == 0) {