mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 12:23:25 +00:00
[RTL]
- Do not change RTL_HANDLE_TABLE::CommittedHandles when committing a new page of handle entries. This value must always point to the beginning of the allocation, to correctly track the entire committed range. Fixes LibreOffice Writer (and ntdll_apitest) crash. CORE-13271 #resolve svn path=/trunk/; revision=74599
This commit is contained in:
@@ -89,6 +89,7 @@ RtlAllocateHandle(
|
||||
return NULL;
|
||||
|
||||
/* Update handle array pointers */
|
||||
HandleTable->CommittedHandles = (PRTL_HANDLE_TABLE_ENTRY)ArrayPointer;
|
||||
HandleTable->UnCommittedHandles = (PRTL_HANDLE_TABLE_ENTRY)ArrayPointer;
|
||||
HandleTable->MaxReservedHandles = (PRTL_HANDLE_TABLE_ENTRY)((ULONG_PTR)ArrayPointer + ArraySize);
|
||||
}
|
||||
@@ -107,7 +108,6 @@ RtlAllocateHandle(
|
||||
|
||||
/* Update handle array pointers */
|
||||
HandleTable->FreeHandles = (PRTL_HANDLE_TABLE_ENTRY)ArrayPointer;
|
||||
HandleTable->CommittedHandles = (PRTL_HANDLE_TABLE_ENTRY)ArrayPointer;
|
||||
HandleTable->UnCommittedHandles = (PRTL_HANDLE_TABLE_ENTRY)((ULONG_PTR)ArrayPointer + ArraySize);
|
||||
|
||||
/* Calculate the number of entries we can store in the array */
|
||||
|
||||
Reference in New Issue
Block a user