diff --git a/reactos/include/ndk/rtltypes.h b/reactos/include/ndk/rtltypes.h index 87972d7618c..59f406782e3 100644 --- a/reactos/include/ndk/rtltypes.h +++ b/reactos/include/ndk/rtltypes.h @@ -958,8 +958,11 @@ typedef struct _RTL_UNLOAD_EVENT_TRACE // typedef struct _RTL_HANDLE_TABLE_ENTRY { - ULONG Flags; - struct _RTL_HANDLE_TABLE_ENTRY *NextFree; + union + { + ULONG Flags; + struct _RTL_HANDLE_TABLE_ENTRY *NextFree; + }; } RTL_HANDLE_TABLE_ENTRY, *PRTL_HANDLE_TABLE_ENTRY; typedef struct _RTL_HANDLE_TABLE diff --git a/reactos/lib/rtl/handle.c b/reactos/lib/rtl/handle.c index bbcdcde69b7..175c7f44e2a 100644 --- a/reactos/lib/rtl/handle.c +++ b/reactos/lib/rtl/handle.c @@ -127,8 +127,12 @@ RtlFreeHandle(PRTL_HANDLE_TABLE HandleTable, { #ifdef DBG /* check if handle is valid */ - if (RtlIsValidHandle(HandleTable, Handle)) + if (!RtlIsValidHandle(HandleTable, Handle)) + { + DPRINT1("Invalid Handle! HandleTable=0x%p, Handle=0x%p, Handle->Flags=0x%x\n", + HandleTable, Handle, Handle ? Handle->Flags : 0); return FALSE; + } #endif /* clear handle */