@@ -31,6 +31,15 @@ static char* wifi_analizer_summary_2[120] = {
3131 "Summary" ,
3232};
3333
34+ static void wifi_analizer_free_summary (void ) {
35+ for (uint8_t i = 1 ; i < 120 ; i ++ ) {
36+ if (wifi_analizer_summary_2 [i ] != NULL ) {
37+ free (wifi_analizer_summary_2 [i ]);
38+ wifi_analizer_summary_2 [i ] = NULL ;
39+ }
40+ }
41+ }
42+
3443static void wifi_module_input_cb (uint8_t button_name , uint8_t button_event );
3544static void wifi_module_summary_exit_cb ();
3645
@@ -113,6 +122,7 @@ static void wifi_module_summary_exit_cb() {
113122 if (analizer_initialized ) {
114123 wifi_sniffer_close_file ();
115124 }
125+ wifi_analizer_free_summary ();
116126 analyzer_scenes_main_menu ();
117127}
118128
@@ -179,6 +189,7 @@ void wifi_module_analizer_summary_cb(FILE* pcap_file) {
179189 esp_err_t ret = ESP_OK ;
180190 long size = pcap_cmd_get_file_size (pcap_file );
181191 char * packet_payload = NULL ;
192+ wifi_analizer_free_summary ();
182193 // packet index (by bytes)
183194 uint32_t index = 0 ;
184195 pcap_file_header_t file_header ;
@@ -202,13 +213,13 @@ void wifi_module_analizer_summary_cb(FILE* pcap_file) {
202213
203214 // Load header information
204215 uint32_t summary_index = 1 ; // Skip scroll text flag and Summary title
205- wifi_analizer_summary_2 [summary_index ++ ] = "----------------" ;
206- wifi_analizer_summary_2 [summary_index ++ ] = "Magic Number:" ;
216+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "----------------" ) ;
217+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "Magic Number:" ) ;
207218 wifi_analizer_summary_2 [summary_index ++ ] = magic_number_str ;
208219 wifi_analizer_summary_2 [summary_index ++ ] = major_version_str ;
209220 wifi_analizer_summary_2 [summary_index ++ ] = snaplen_str ;
210221 wifi_analizer_summary_2 [summary_index ++ ] = link_type_str ;
211- wifi_analizer_summary_2 [summary_index ++ ] = "----------------" ;
222+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "----------------" ) ;
212223
213224 uint32_t packet_num = 0 ;
214225 pcap_packet_header_t packet_header ;
@@ -269,7 +280,7 @@ void wifi_module_analizer_summary_cb(FILE* pcap_file) {
269280 snprintf (bssid_str2 , 32 , " %2X:%2X:%2X" , packet_payload [19 ],
270281 packet_payload [20 ], packet_payload [21 ]);
271282
272- wifi_analizer_summary_2 [summary_index ++ ] = "SSID:" ;
283+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "SSID:" ) ;
273284 wifi_analizer_summary_2 [summary_index ++ ] = ssid_str ;
274285 wifi_analizer_summary_2 [summary_index ++ ] = channel_str ;
275286 wifi_analizer_summary_2 [summary_index ++ ] = bssid_str ;
@@ -297,17 +308,17 @@ void wifi_module_analizer_summary_cb(FILE* pcap_file) {
297308
298309 wifi_analizer_summary_2 [summary_index ++ ] = frame_type_str ;
299310 wifi_analizer_summary_2 [summary_index ++ ] = frame_subtype_str ;
300- wifi_analizer_summary_2 [summary_index ++ ] = "Destination:" ;
311+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "Destination:" ) ;
301312 wifi_analizer_summary_2 [summary_index ++ ] = destination_str ;
302313 wifi_analizer_summary_2 [summary_index ++ ] = destination_str2 ;
303314 wifi_analizer_summary_2 [summary_index ++ ] = source_str ;
304315 wifi_analizer_summary_2 [summary_index ++ ] = source_str2 ;
305316
306- wifi_analizer_summary_2 [summary_index ++ ] = "----------------" ;
317+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "----------------" ) ;
307318 } else {
308319 char * link_type_str = malloc (32 );
309320 snprintf (link_type_str , 32 , "Link Type: %" PRIu32 , file_header .link_type );
310- wifi_analizer_summary_2 [summary_index ++ ] = "Unknown link type" ;
321+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "Unknown link type" ) ;
311322 wifi_analizer_summary_2 [summary_index ++ ] = link_type_str ;
312323 }
313324 free (packet_payload );
@@ -317,12 +328,12 @@ void wifi_module_analizer_summary_cb(FILE* pcap_file) {
317328 }
318329
319330 if (packet_num > 0 ) {
320- wifi_analizer_summary_2 [summary_index ++ ] = "Open the pcap" ;
321- wifi_analizer_summary_2 [summary_index ++ ] = "file in" ;
322- wifi_analizer_summary_2 [summary_index ++ ] = "Wireshark to see" ;
323- wifi_analizer_summary_2 [summary_index ++ ] = "more." ;
331+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "Open the pcap" ) ;
332+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "file in" ) ;
333+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "Wireshark to see" ) ;
334+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "more." ) ;
324335 } else {
325- wifi_analizer_summary_2 [summary_index ++ ] = "No packets found" ;
336+ wifi_analizer_summary_2 [summary_index ++ ] = strdup ( "No packets found" ) ;
326337 }
327338
328339 wifi_analizer_summary_2 [summary_index ++ ] = NULL ;
0 commit comments