[PATCH] kernelbase: Avoid NULL-pointer dereferences.
Gen Otsuji
otsugen0000 at gmail.com
Sat May 16 00:20:54 CDT 2020
The codes after is_pointer(hmem) function, "if (hmem == NULL)" check
is needed to avoid null-pointer dereferences.
After struggling about 1 week, I found the C code "*p|=0", and if this
p is NULL,
NULL-pointer error will occur.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49155
Signed-off-by: Gen Otsuji <otsugen0000 at gmail.com>
---
dlls/kernelbase/memory.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c
index 1efc3b6e82..5744193a74 100644
--- a/dlls/kernelbase/memory.c
+++ b/dlls/kernelbase/memory.c
@@ -641,6 +641,9 @@ HLOCAL WINAPI DECLSPEC_HOTPATCH LocalFree( HLOCAL hmem )
ret = 0;
if (is_pointer(hmem)) /* POINTER */
{
+ if (hmem == NULL)
+ ret = NULL;
+ else
if (!HeapFree( GetProcessHeap(), HEAP_NO_SERIALIZE, hmem ))
{
SetLastError( ERROR_INVALID_HANDLE );
@@ -690,6 +693,7 @@ LPVOID WINAPI DECLSPEC_HOTPATCH LocalLock( HLOCAL hmem )
if (is_pointer( hmem ))
{
+ if (hmem == NULL) return NULL;
__TRY
{
volatile char *p = hmem;
--
2.26.2
More information about the wine-devel
mailing list