Bugfix: Fix hardfault when update menu is opened and no hex file is located on disk
This commit is contained in:
		@@ -663,21 +663,26 @@ static void gui_update_firmware(struct lcd_menu *menu, enum menu_entry_func_entr
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (entry_type == MENU_ENTRY_FIRST_ENTER ||
 | 
			
		||||
					previously_selected_file != currently_selected_file) {
 | 
			
		||||
				fname = sl_list_nth(file_list, currently_selected_file)->data;
 | 
			
		||||
				menu_lcd_output(menu, 0, "Select File:");
 | 
			
		||||
				if (fname)
 | 
			
		||||
					menu_lcd_output(menu, 1, fname);
 | 
			
		||||
			if (list_length) {
 | 
			
		||||
				if (entry_type == MENU_ENTRY_FIRST_ENTER ||
 | 
			
		||||
						previously_selected_file != currently_selected_file) {
 | 
			
		||||
					fname = sl_list_nth(file_list, currently_selected_file)->data;
 | 
			
		||||
					menu_lcd_output(menu, 0, "Select File:");
 | 
			
		||||
					if (fname)
 | 
			
		||||
						menu_lcd_output(menu, 1, fname);
 | 
			
		||||
				}
 | 
			
		||||
				if (button == BUTTON_SHORT_RELEASED) {
 | 
			
		||||
					fname = sl_list_nth(file_list, currently_selected_file)->data;
 | 
			
		||||
					menu_display_clear(menu);
 | 
			
		||||
					updater_update_from_file(fname);
 | 
			
		||||
					/* This code is here for completeness. It will never be reached! */
 | 
			
		||||
					sl_list_free_full(file_list, delete_file_list_entry);
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				menu_lcd_output(menu, 0, "No files!");
 | 
			
		||||
			}
 | 
			
		||||
			if (button == BUTTON_SHORT_RELEASED) {
 | 
			
		||||
				fname = sl_list_nth(file_list, currently_selected_file)->data;
 | 
			
		||||
				menu_display_clear(menu);
 | 
			
		||||
				file_list = NULL;
 | 
			
		||||
				updater_update_from_file(fname);
 | 
			
		||||
				/* This code is here for completeness. It will never be reached! */
 | 
			
		||||
				sl_list_free_full(file_list, delete_file_list_entry);
 | 
			
		||||
			} else if (button == BUTTON_LONG) {
 | 
			
		||||
 | 
			
		||||
			if (button == BUTTON_LONG) {
 | 
			
		||||
				sl_list_free_full(file_list, delete_file_list_entry);
 | 
			
		||||
				file_list = NULL;
 | 
			
		||||
				menu_entry_dropback(menu, my_parent);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user