diff options
Diffstat (limited to 'win32/readdir.c')
| -rw-r--r-- | win32/readdir.c | 9 |
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); |
