From 34bf934a6275d4c8b21d2571a9d1597a9a4b9c15 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Wed, 13 Jan 2021 16:43:04 +0100 Subject: pkgcachegen: Avoid write to old cache for Version::Extra Assigning the result of AllocateInMap directly to Ver->d caused Ver->d to be resolved first, and hence if Ver was remapped during the AllocateInMap, we were trying to assign to the old value. Closes: #980037 --- apt-pkg/pkgcachegen.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index bd81ca0f5..26cf7fc68 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -873,7 +873,8 @@ map_pointer pkgCacheGenerator::NewVersion(pkgCache::VerIterat // Fill it in Ver = pkgCache::VerIterator(Cache,Cache.VerP + Version); - Ver->d = AllocateInMap(); + auto d = AllocateInMap(); // sequence point so Ver can be moved if needed + Ver->d = d; if (not Ver.PhasedUpdatePercentage(100)) abort(); -- cgit v1.2.3