changeset 1034:2c8d76280e43

Slightly better handling of directory read errors
author Michael Pavone <pavone@retrodev.com>
date Thu, 12 May 2016 19:26:58 -0700
parents 4263dc9cf86d
children 284d905ca582
files menu.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/menu.c	Wed May 11 22:43:18 2016 -0700
+++ b/menu.c	Thu May 12 19:26:58 2016 -0700
@@ -142,6 +142,10 @@
 				qsort(entries, num_entries, sizeof(dir_entry), menu_dir_sort);
 			} else {
 				warning("Failed to open directory %s: %s\n", menu->curpath, strerror(errno));
+				entries = malloc(sizeof(dir_entry));
+				entries->name = strdup("..");
+				entries->is_dir = 1;
+				num_entries = 1;
 			}
 			uint8_t *dest;
 			for (size_t i = 0; i < num_entries; i++)
@@ -184,8 +188,8 @@
 			dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->options->gen);
 			if (dest) {
 				*dest = dest[1] = 0;
-				free_dir_list(entries, num_entries);
 			}
+			free_dir_list(entries, num_entries);
 			break;
 		}
 		case 1: {