summaryrefslogtreecommitdiff
path: root/win32/readdir.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32/readdir.c')
-rw-r--r--win32/readdir.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/win32/readdir.c b/win32/readdir.c
index e33d19bde5..6aaafced44 100644
--- a/win32/readdir.c
+++ b/win32/readdir.c
@@ -37,14 +37,17 @@ DIR *opendir(const char *dir)
dp = (DIR *) malloc(sizeof(DIR));
dp->offset = 0;
dp->finished = 0;
- dp->dir = strdup(dir);
if ((handle = _findfirst(filespec, &(dp->fileinfo))) < 0) {
- if (errno == ENOENT)
+ if (errno == ENOENT) {
dp->finished = 1;
- else
+ } else {
+ free(dp);
+ free(filespec);
return NULL;
+ }
}
+ dp->dir = strdup(dir);
dp->handle = handle;
free(filespec);