diff options
-rw-r--r-- | winsup/cygwin/dir.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/winsup/cygwin/dir.cc b/winsup/cygwin/dir.cc index 07d2ce6..5713c57 100644 --- a/winsup/cygwin/dir.cc +++ b/winsup/cygwin/dir.cc @@ -82,13 +82,18 @@ opendir (const char *name) { fhandler_base *fh; path_conv pc; - DIR *res = NULL; + DIR *res; fh = cygheap->fdtab.build_fhandler_from_name (-1, name, NULL, pc, PC_SYM_FOLLOW | PC_FULL, NULL); - res = fh->opendir (pc); - if (!res) - delete fh; + if (!fh) + res = NULL; + else + { + res = fh->opendir (pc); + if (!res) + delete fh; + } return res; } |