From d6d59e960941bf1eb0a72df6efd0bc3b01737116 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Wed, 9 Jun 2004 14:18:16 +0000 Subject: [PATCH] MFH: Fixed memory leak on error in win32's opendir() emulation. --- win32/readdir.c | 9 ++++++--- 1 file 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); -- 2.40.0