@@ -382,26 +382,46 @@ static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_para
382382 BLUFI_INFO ("Recv STA BSSID %s\n" , sta_config .sta .ssid );
383383 break ;
384384 case ESP_BLUFI_EVENT_RECV_STA_SSID :
385+ if (param -> sta_ssid .ssid_len >= sizeof (sta_config .sta .ssid )/sizeof (sta_config .sta .ssid [0 ])) {
386+ esp_blufi_send_error_info (ESP_BLUFI_DATA_FORMAT_ERROR );
387+ BLUFI_INFO ("Invalid STA SSID\n" );
388+ break ;
389+ }
385390 strncpy ((char * )sta_config .sta .ssid , (char * )param -> sta_ssid .ssid , param -> sta_ssid .ssid_len );
386391 sta_config .sta .ssid [param -> sta_ssid .ssid_len ] = '\0' ;
387392 esp_wifi_set_config (WIFI_IF_STA , & sta_config );
388393 BLUFI_INFO ("Recv STA SSID %s\n" , sta_config .sta .ssid );
389394 break ;
390395 case ESP_BLUFI_EVENT_RECV_STA_PASSWD :
396+ if (param -> sta_passwd .passwd_len >= sizeof (sta_config .sta .password )/sizeof (sta_config .sta .password [0 ])) {
397+ esp_blufi_send_error_info (ESP_BLUFI_DATA_FORMAT_ERROR );
398+ BLUFI_INFO ("Invalid STA PASSWORD\n" );
399+ break ;
400+ }
391401 strncpy ((char * )sta_config .sta .password , (char * )param -> sta_passwd .passwd , param -> sta_passwd .passwd_len );
392402 sta_config .sta .password [param -> sta_passwd .passwd_len ] = '\0' ;
393403 sta_config .sta .threshold .authmode = EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD ;
394404 esp_wifi_set_config (WIFI_IF_STA , & sta_config );
395405 BLUFI_INFO ("Recv STA PASSWORD %s\n" , sta_config .sta .password );
396406 break ;
397407 case ESP_BLUFI_EVENT_RECV_SOFTAP_SSID :
408+ if (param -> softap_ssid .ssid_len >= sizeof (ap_config .ap .ssid )/sizeof (ap_config .ap .ssid [0 ])) {
409+ esp_blufi_send_error_info (ESP_BLUFI_DATA_FORMAT_ERROR );
410+ BLUFI_INFO ("Invalid SOFTAP SSID\n" );
411+ break ;
412+ }
398413 strncpy ((char * )ap_config .ap .ssid , (char * )param -> softap_ssid .ssid , param -> softap_ssid .ssid_len );
399414 ap_config .ap .ssid [param -> softap_ssid .ssid_len ] = '\0' ;
400415 ap_config .ap .ssid_len = param -> softap_ssid .ssid_len ;
401416 esp_wifi_set_config (WIFI_IF_AP , & ap_config );
402417 BLUFI_INFO ("Recv SOFTAP SSID %s, ssid len %d\n" , ap_config .ap .ssid , ap_config .ap .ssid_len );
403418 break ;
404419 case ESP_BLUFI_EVENT_RECV_SOFTAP_PASSWD :
420+ if (param -> softap_passwd .passwd_len >= sizeof (ap_config .sta .ssid )/sizeof (ap_config .sta .ssid [0 ])) {
421+ esp_blufi_send_error_info (ESP_BLUFI_DATA_FORMAT_ERROR );
422+ BLUFI_INFO ("Invalid SOFTAP PASSWD\n" );
423+ break ;
424+ }
405425 strncpy ((char * )ap_config .ap .password , (char * )param -> softap_passwd .passwd , param -> softap_passwd .passwd_len );
406426 ap_config .ap .password [param -> softap_passwd .passwd_len ] = '\0' ;
407427 esp_wifi_set_config (WIFI_IF_AP , & ap_config );
0 commit comments