Module: wine Branch: master Commit: 871d2b9443bc4f15e61d7bdba1fdad4c895b05b7 URL: https://gitlab.winehq.org/wine/wine/-/commit/871d2b9443bc4f15e61d7bdba1fdad4...
Author: Rémi Bernon rbernon@codeweavers.com Date: Fri Nov 25 11:09:39 2022 +0100
ntdll: Reallocate a new block if we failed to commit.
---
dlls/ntdll/heap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c index 4326199a07b..0c7300f8055 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -1662,7 +1662,7 @@ static NTSTATUS heap_reallocate( struct heap *heap, ULONG flags, struct block *b
if (!(next = next_block( subheap, block )) || !(block_get_flags( next ) & BLOCK_FLAG_FREE) || block_size >= HEAP_MIN_LARGE_BLOCK_SIZE || - block_size > old_block_size + block_get_size( next )) + block_size > old_block_size + block_get_size( next ) || !subheap_commit( heap, subheap, block, block_size )) { if (flags & HEAP_REALLOC_IN_PLACE_ONLY) return STATUS_NO_MEMORY; if ((status = heap_allocate( heap, flags & ~HEAP_ZERO_MEMORY, block_size, size, ret ))) return status; @@ -1678,7 +1678,6 @@ static NTSTATUS heap_reallocate( struct heap *heap, ULONG flags, struct block *b entry = (struct entry *)next; list_remove( &entry->entry ); old_block_size += block_get_size( next ); - if (!subheap_commit( heap, subheap, block, block_size )) return STATUS_NO_MEMORY; }
valgrind_notify_resize( block + 1, old_size, size );