]> git.saurik.com Git - apt.git/commitdiff
* apt-pkg/pkgcache.cc:
authorJulian Andres Klode <jak@debian.org>
Wed, 20 Jul 2011 14:38:40 +0000 (16:38 +0200)
committerJulian Andres Klode <jak@debian.org>
Wed, 20 Jul 2011 14:38:40 +0000 (16:38 +0200)
  - Check that cache is at least CacheFileSize bytes large (LP: #16467)

apt-pkg/pkgcache.cc
debian/changelog

index 1fd21a0ad85c7bb322187100541612e2c484e711..2b8cb6b86814f7ec3328ac31a28c3fbd586edab3 100644 (file)
@@ -157,6 +157,9 @@ bool pkgCache::ReMap(bool const &Errorchecks)
        HeaderP->CheckSizes(DefHeader) == false)
       return _error->Error(_("The package cache file is an incompatible version"));
 
+   if (Map.Size() < HeaderP->CacheFileSize)
+      return _error->Error(_("The package cache file is corrupted, it is too small"));
+
    // Locate our VS..
    if (HeaderP->VerSysName == 0 ||
        (VS = pkgVersioningSystem::GetVS(StrP + HeaderP->VerSysName)) == 0)
index 0a161bce720c408d598039a8f6e1c0af52e4a9a0..17840ea75e93629940ed4fcb28fb242cece9fe72 100644 (file)
@@ -4,6 +4,8 @@ apt (0.8.16~exp4) UNRELEASED; urgency=low
     - [ABI break] Add pkgCache::Header::CacheFileSize, storing the cache size
   * apt-pkg/pkgcachegen.cc:
     - Write the file size to the cache
+  * apt-pkg/pkgcache.cc:
+    - Check that cache is at least CacheFileSize bytes large (LP: #16467)
 
  -- Julian Andres Klode <jak@debian.org>  Wed, 20 Jul 2011 16:23:55 +0200