diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_dpp.c b/components/wpa_supplicant/esp_supplicant/src/esp_dpp.c index 7b8b984632..7be7e328c2 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_dpp.c +++ b/components/wpa_supplicant/esp_supplicant/src/esp_dpp.c @@ -554,7 +554,7 @@ esp_supp_dpp_bootstrap_gen(const char *chan_list, enum dpp_bootstrap_type type, } } - sprintf(command, "type=qrcode mac=" MACSTR "%s%s%s%s%s", + os_snprintf(command, 1200, "type=qrcode mac=" MACSTR "%s%s%s%s%s", MAC2STR(params->mac), uri_chan_list, key ? "key=" : "", key ? key : "", params->info_len ? " info=" : "", diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wpa2.c b/components/wpa_supplicant/esp_supplicant/src/esp_wpa2.c index 52bfa3927f..219522f558 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wpa2.c +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wpa2.c @@ -1153,12 +1153,14 @@ esp_err_t esp_wifi_sta_wpa2_ent_set_fast_phase1_params(esp_eap_fast_config confi { char config_for_supplicant[PHASE1_PARAM_STRING_LEN] = ""; if ((config.fast_provisioning > -1) && (config.fast_provisioning <= 2)) { - os_sprintf((char *) &config_for_supplicant, "fast_provisioning=%d ", config.fast_provisioning); + os_snprintf((char *) &config_for_supplicant, PHASE1_PARAM_STRING_LEN, "fast_provisioning=%d ", config.fast_provisioning); } else { return ESP_ERR_INVALID_ARG; } if (config.fast_max_pac_list_len && config.fast_max_pac_list_len < 100) { - os_sprintf((char *) &config_for_supplicant + strlen(config_for_supplicant), "fast_max_pac_list_len=%d ", config.fast_max_pac_list_len); + os_snprintf((char *) &config_for_supplicant + strlen(config_for_supplicant), + PHASE1_PARAM_STRING_LEN - strlen(config_for_supplicant), + "fast_max_pac_list_len=%d ", config.fast_max_pac_list_len); } else if (config.fast_max_pac_list_len >= 100) { return ESP_ERR_INVALID_ARG; } diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wps.c b/components/wpa_supplicant/esp_supplicant/src/esp_wps.c index 74c8383cb4..ac8faefad6 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wps.c +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wps.c @@ -392,7 +392,7 @@ wps_parse_scan_result(struct wps_scan_ie *scan) wpabuf_free(buf); esp_wifi_enable_sta_privacy_internal(); os_memset(sm->ssid[0], 0, SSID_MAX_LEN); - strncpy((char *)sm->ssid[0], (char *)&scan->ssid[2], (int)scan->ssid[1]); + os_strlcpy((char *)sm->ssid[0], (char *)&scan->ssid[2], (int)scan->ssid[1]); sm->ssid_len[0] = scan->ssid[1]; if (scan->bssid && memcmp(sm->bssid, scan->bssid, ETH_ALEN) != 0) { wpa_printf(MSG_INFO, "sm BSSid: "MACSTR " scan BSSID " MACSTR "\n", @@ -1052,10 +1052,10 @@ int wps_set_default_factory(void) } } - sprintf(s_factory_info->manufacturer, "ESPRESSIF"); - sprintf(s_factory_info->model_name, "ESPRESSIF IOT"); - sprintf(s_factory_info->model_number, "ESP32"); - sprintf(s_factory_info->device_name, "ESP32 STATION"); + os_snprintf(s_factory_info->manufacturer, WPS_MAX_MANUFACTURER_LEN, "ESPRESSIF"); + os_snprintf(s_factory_info->model_name, WPS_MAX_MODEL_NUMBER_LEN, "ESPRESSIF IOT"); + os_snprintf(s_factory_info->model_number, WPS_MAX_MODEL_NAME_LEN, "ESP32"); + os_snprintf(s_factory_info->device_name, WPS_MAX_DEVICE_NAME_LEN, "ESP32 STATION"); return ESP_OK; } @@ -1129,35 +1129,35 @@ int wps_dev_init(void) ret = ESP_FAIL; goto _out; } - sprintf(dev->manufacturer, s_factory_info->manufacturer); + os_snprintf(dev->manufacturer, WPS_MAX_MANUFACTURER_LEN, s_factory_info->manufacturer); dev->model_name = os_zalloc(WPS_MAX_MODEL_NAME_LEN); if (!dev->model_name) { ret = ESP_FAIL; goto _out; } - sprintf(dev->model_name, s_factory_info->model_name); + os_snprintf(dev->model_name, WPS_MAX_MODEL_NAME_LEN, s_factory_info->model_name); dev->model_number = os_zalloc(WPS_MAX_MODEL_NAME_LEN); if (!dev->model_number) { ret = ESP_FAIL; goto _out; } - sprintf(dev->model_number, s_factory_info->model_number); + os_snprintf(dev->model_number, WPS_MAX_MODEL_NAME_LEN, s_factory_info->model_number); dev->device_name = os_zalloc(WPS_MAX_DEVICE_NAME_LEN); if (!dev->device_name) { ret = ESP_FAIL; goto _out; } - sprintf(dev->device_name, s_factory_info->device_name); + os_snprintf(dev->device_name, WPS_MAX_DEVICE_NAME_LEN, s_factory_info->device_name); dev->serial_number = os_zalloc(16); if (!dev->serial_number) { ret = ESP_FAIL; goto _out; } - sprintf(dev->serial_number, "%02x%02x%02x%02x%02x%02x", + os_snprintf(dev->serial_number, 16, "%02x%02x%02x%02x%02x%02x", sm->ownaddr[0], sm->ownaddr[1], sm->ownaddr[2], sm->ownaddr[3], sm->ownaddr[4], sm->ownaddr[5]); @@ -1356,7 +1356,7 @@ int wps_init_cfg_pin(struct wps_config *cfg) if (wps_generate_pin(&spin) < 0) { return -1; } - os_sprintf((char *)cfg->pin, "%08d", spin); + os_snprintf((char *)cfg->pin, 9, "%08d", spin); } return 0; @@ -1553,7 +1553,7 @@ wifi_wps_scan_done(void *arg, STATUS status) esp_wifi_disconnect(); os_memcpy(wifi_config.sta.bssid, sm->bssid, ETH_ALEN); - os_strncpy((char *)wifi_config.sta.ssid, (char *)sm->ssid[0], sm->ssid_len[0]); + os_strlcpy((char *)wifi_config.sta.ssid, (char *)sm->ssid[0], sm->ssid_len[0]); wifi_config.sta.bssid_set = 1; wpa_printf(MSG_INFO, "WPS: connecting to %s, bssid=" MACSTR, (char *)sm->ssid[0], MAC2STR(wifi_config.sta.bssid));