summaryrefslogtreecommitdiff
path: root/uisimulator/x11/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'uisimulator/x11/io.c')
-rw-r--r--uisimulator/x11/io.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/uisimulator/x11/io.c b/uisimulator/x11/io.c
index 1e2ebd76c0..17a0c94b70 100644
--- a/uisimulator/x11/io.c
+++ b/uisimulator/x11/io.c
@@ -19,18 +19,24 @@ typedef struct mydir MYDIR;
19MYDIR *x11_opendir(char *name) 19MYDIR *x11_opendir(char *name)
20{ 20{
21 char buffer[256]; /* sufficiently big */ 21 char buffer[256]; /* sufficiently big */
22 MYDIR *my = (MYDIR *)malloc(sizeof(MYDIR)); 22 DIR *dir;
23 23
24 if(name[0] == '/') { 24 if(name[0] == '/') {
25 sprintf(buffer, "%s%s", SIMULATOR_ARCHOS_ROOT, name); 25 sprintf(buffer, "%s%s", SIMULATOR_ARCHOS_ROOT, name);
26 my->dir=(DIR *)opendir(buffer); 26 dir=(DIR *)opendir(buffer);
27 } 27 }
28 else 28 else
29 my->dir=(DIR *)opendir(name); 29 dir=(DIR *)opendir(name);
30 30
31 my->name = (char *)strdup(name); 31 if(dir) {
32 MYDIR *my = (MYDIR *)malloc(sizeof(MYDIR));
33 my->dir = dir;
34 my->name = (char *)strdup(name);
32 35
33 return my; 36 return my;
37 }
38 /* failed open, return NULL */
39 return (MYDIR *)0;
34} 40}
35 41
36struct x11_dirent *x11_readdir(MYDIR *dir) 42struct x11_dirent *x11_readdir(MYDIR *dir)