From f79277d0e707ed8ec4d2349108d17b99a2287488 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 3 Jul 2011 08:31:19 +0200 Subject: [PATCH] Fix "package add" heap compacting PackageWriterImpl::_CompactHeap(): Incorrectly used fHeapEnd instead of the heap size. So the last copied chunk was too large. --- src/kits/package/hpkg/PackageWriterImpl.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kits/package/hpkg/PackageWriterImpl.cpp b/src/kits/package/hpkg/PackageWriterImpl.cpp index 9bf4913b62..03a117d6dd 100644 --- a/src/kits/package/hpkg/PackageWriterImpl.cpp +++ b/src/kits/package/hpkg/PackageWriterImpl.cpp @@ -1117,9 +1117,10 @@ PackageWriterImpl::_CompactHeap() } // move the final chunk - if (delta > 0 && chunkOffset < fHeapEnd) { + off_t heapSize = fHeapEnd - fHeapOffset; + if (delta > 0 && chunkOffset < heapSize) { _MoveHeapChunk(chunkOffset, chunkOffset - delta, - fHeapEnd - chunkOffset); + heapSize - chunkOffset); } fHeapEnd -= delta;