aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sftsr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sftsr.c b/sftsr.c
index ffbf326..fb41431 100644
--- a/sftsr.c
+++ b/sftsr.c
@@ -1172,6 +1172,14 @@ static void handle_find_first(union INTPACK __far *r)
dlog_puts("search volid OK");
clear_dos_err(r);
return;
+ } else if (search_attr == 0) {
+ // Another hack to avoid leaking directory handles.
+ // While technically a mask of 0 should return all files,
+ // DOS's dir uses a mask of 0 when it just wants to check
+ // if the directory exists, and will never call FindNext.
+ // So we'll not bother opening the directory and hope nothing breaks.
+ set_dos_err(r, DOS_ERROR_NO_MORE_FILES);
+ return;
}
// First, open the desired directory for searching