Avoid double checking free type flags in NtFreeVirtualMemory
Dmitry Timoshkov
dmitry at baikal.ru
Wed Feb 11 00:01:41 CST 2004
Hello,
Changelog:
Dmitry Timoshkov <dmitry at codeweavers.com>
Avoid double checking free type flags in NtFreeVirtualMemory.
--- cvs/hq/wine/dlls/ntdll/virtual.c 2004-02-11 11:35:18.000000000 +0800
+++ wine/dlls/ntdll/virtual.c 2004-02-11 11:37:27.000000000 +0800
@@ -1130,20 +1130,14 @@ NTSTATUS WINAPI NtFreeVirtualMemory( HAN
return STATUS_SUCCESS;
}
- if ((type != MEM_DECOMMIT) && (type != MEM_RELEASE))
- {
- WARN("called with wrong free type flags (%08lx) !\n", type);
- return STATUS_INVALID_PARAMETER;
- }
-
- /* Free the pages */
-
if (type == MEM_RELEASE)
{
+ /* Free the pages */
+
if (size || (base != view->base)) return STATUS_INVALID_PARAMETER;
VIRTUAL_DeleteView( view );
}
- else
+ else if (type == MEM_DECOMMIT)
{
/* Decommit the pages by remapping zero-pages instead */
@@ -1151,6 +1145,11 @@ NTSTATUS WINAPI NtFreeVirtualMemory( HAN
ERR( "Could not remap pages, expect trouble\n" );
if (!VIRTUAL_SetProt( view, base, size, 0 )) return STATUS_ACCESS_DENIED; /* FIXME */
}
+ else
+ {
+ WARN("called with wrong free type flags (%08lx) !\n", type);
+ return STATUS_INVALID_PARAMETER;
+ }
*addr_ptr = base;
*size_ptr = size;
More information about the wine-patches
mailing list