Module: wine Branch: master Commit: ae010a1a95934233246d93aea66374f9012d6c93 URL: https://gitlab.winehq.org/wine/wine/-/commit/ae010a1a95934233246d93aea66374f...
Author: Paul Gofman pgofman@codeweavers.com Date: Mon Oct 30 19:43:51 2023 -0600
ntdll: Fix pending free block validation in heap_validate() for LFH blocks.
---
dlls/ntdll/heap.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c index 93ad5c73ba1..e3388e1bc8a 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -1343,15 +1343,11 @@ static BOOL heap_validate( const struct heap *heap ) { if (!(block = heap->pending_free[i])) break;
- subheap = find_subheap( heap, block, FALSE ); - if (!subheap) + if (!validate_used_block( heap, find_subheap( heap, block, FALSE ), block, BLOCK_TYPE_DEAD )) { - ERR( "heap %p: cannot find valid subheap for delayed freed block %p\n", heap, block ); - if (TRACE_ON(heap)) heap_dump( heap ); + ERR( "heap %p: failed to to validate delayed free block %p\n", heap, block ); return FALSE; } - - if (!validate_used_block( heap, subheap, block, BLOCK_TYPE_DEAD )) return FALSE; }
for (; i < MAX_FREE_PENDING; i++)