]> git.saurik.com Git - apt.git/commitdiff
add 3 missing remap registrations causing a segfault in case
authorDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 19 Sep 2012 09:39:20 +0000 (11:39 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 19 Sep 2012 09:39:20 +0000 (11:39 +0200)
we use the not remapped iterators after a move of the mmap again

apt-pkg/pkgcachegen.cc
debian/changelog

index 5f37330c9b2e7a1f4f0125fc2d6fae35cb3eb980..d5f1f90722d1c99cfc7081e79dace073b4d4c417 100644 (file)
@@ -209,6 +209,7 @@ bool pkgCacheGenerator::MergeList(ListParser &List,
            just for these :none packages to a proper MultiArchCache, so just ensure
            that we have always a native package structure first for SingleArch */
         pkgCache::PkgIterator NP;
+        Dynamic<pkgCache::PkgIterator> DynPkg(NP);
         if (NewPackage(NP, PackageName, _config->Find("APT::Architecture")) == false)
         // TRANSLATOR: The first placeholder is a package name,
         // the other two should be copied verbatim as they include debug info
@@ -459,6 +460,7 @@ bool pkgCacheGenerator::MergeListVersion(ListParser &List, pkgCache::PkgIterator
 
               map_ptrloc *OldDepLast = NULL;
               pkgCache::VerIterator ConVersion = D.ParentVer();
+              Dynamic<pkgCache::VerIterator> DynV(ConVersion);
               // duplicate the Conflicts/Breaks/Replaces for :none arch
               if (D->Version == 0)
                  NewDepends(Pkg, ConVersion, "", 0, D->Type, OldDepLast);
@@ -772,6 +774,7 @@ unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver,
    
    // Fill it in
    Ver = pkgCache::VerIterator(Cache,Cache.VerP + Version);
+   Dynamic<pkgCache::VerIterator> DynV(Ver);
    Ver->NextVer = Next;
    Ver->ID = Cache.HeaderP->VersionCount++;
    map_ptrloc const idxVerStr = WriteStringInMap(VerStr);
index 5b0d049b75dce6d49ee6ac632b2fca3faac53fe6..b7f8e2045abfd46ef0db3aacd1d98cd54b96bc0a 100644 (file)
@@ -3,6 +3,8 @@ apt (0.9.7.6) UNRELEASED; urgency=low
   [ David Kalnischkies ]
   * apt-pkg/pkgcachegen.cc:
     - ensure that dependencies for packages:none are always generated
+    - add 3 missing remap registrations causing a segfault in case
+      we use the not remapped iterators after a move of the mmap again
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 19 Sep 2012 11:29:56 +0200