The heap is maintained as a doubly linked list of objects but both
__AllocSmall() and __FreeSmall() are missing setup of the reverse link when
a new object is inserted at the head. This patch adds the necessary fix.
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reported-by: Gregory Jacklin <jackling@amazon.com>
SubHeap->Next->Prev = SubHeap->Prev;
SubHeap->Prev = NULL;
SubHeap->Next = AustereHeap.HeadSubHeap;
+ AustereHeap.HeadSubHeap->Prev = SubHeap;
AustereHeap.HeadSubHeap = SubHeap;
}
return Res;
SubHeap->Next->Prev = SubHeap->Prev;
SubHeap->Prev = NULL;
SubHeap->Next = AustereHeap.HeadSubHeap;
+ AustereHeap.HeadSubHeap->Prev = SubHeap;
AustereHeap.HeadSubHeap = SubHeap;
}
}