[PATCH 1/4] [programs/cmd] if exists leaves locks on files
Jason Edmeades
us at edmeades.me.uk
Sun Jul 15 17:15:26 CDT 2018
Fixes regression in f53d57c8549dc439eb73354bfd37acd1e4e86cfd
Due to an invalid error condition check, a FindFirstFile was not terminated
with a FindClose, resulting in a held lock. This meant a sharing violation
message was issued if the file/directory was then removed - This was noticed
as a subdirectory was not being cleaned up in %temp% at the end of the
tests - with the fix on it is correctly cleaned up.
Example recreate outside the existing tests
mkdir subdir
echo something>subdir\bar
if exist subdir\ba* echo y
del subdir\bar
rd subdir
Signed-off-by: Jason Edmeades <us at edmeades.me.uk>
---
programs/cmd/builtins.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 57a41c4752..ff58484b9a 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -2844,7 +2844,7 @@ void WCMD_if (WCHAR *p, CMD_LIST **cmdList)
WIN32_FIND_DATAW fd;
HANDLE hff = FindFirstFileW(WCMD_parameter(p, 1+negate, NULL, FALSE, FALSE), &fd);
test = (hff != INVALID_HANDLE_VALUE );
- if (!test) FindClose(hff);
+ if (test) FindClose(hff);
WCMD_parameter(p, 2+negate, &command, FALSE, FALSE);
}
--
2.17.1
More information about the wine-devel
mailing list