Check sharing in DeleteFile
Uwe Bonnes
bon at elektron.ikp.physik.tu-darmstadt.de
Thu May 9 15:16:19 CDT 2002
Changelog:
files/file.c: DeleteFile
Check for Sharing violations by using CreateFile
--
Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Free Software: If you contribute nothing, expect nothing
--
Index: wine/files/file.c
===================================================================
RCS file: /home/wine/wine/files/file.c,v
retrieving revision 1.145
diff -u -r1.145 file.c
--- wine/files/file.c 26 Apr 2002 18:31:19 -0000 1.145
+++ wine/files/file.c 9 May 2002 20:15:46 -0000
@@ -2179,6 +2179,7 @@
BOOL WINAPI DeleteFileA( LPCSTR path )
{
DOS_FULL_NAME full_name;
+ HANDLE ret;
if (!path)
{
@@ -2198,8 +2199,17 @@
SetLastError( ERROR_FILE_NOT_FOUND );
return FALSE;
}
+
+ if (!DOSFS_GetFullName( path, TRUE, &full_name ))
+ return FALSE; /* File if file doesn't exist */
+ ret = CreateFileA(path,GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
+ if (ret == INVALID_HANDLE_VALUE)
+ {
+ SetLastError( ERROR_ACCESS_DENIED );
+ return FALSE;
+ }
+ CloseHandle(ret);
- if (!DOSFS_GetFullName( path, TRUE, &full_name )) return FALSE;
if (unlink( full_name.long_name ) == -1)
{
FILE_SetDosError();
More information about the wine-patches
mailing list