From fe6489197b598e2ad255e204f1929ef62757399a Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:58:47 +0000 Subject: Fixed possible segv if there are no packages Author: jgg Date: 2001-12-07 05:57:43 GMT Fixed possible segv if there are no packages --- cmdline/apt-cache.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 3f7811c70..691899b3e 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: apt-cache.cc,v 1.52 2001/07/02 00:10:32 jgg Exp $ +// $Id: apt-cache.cc,v 1.53 2001/12/07 05:57:43 jgg Exp $ /* ###################################################################### apt-cache - Manages the cache files @@ -374,8 +374,9 @@ bool DumpAvail(CommandLine &Cmd) if (ReadPinFile(Plcy) == false) return false; - pkgCache::VerFile **VFList = new pkgCache::VerFile *[Cache.HeaderP->PackageCount]; - memset(VFList,0,sizeof(*VFList)*Cache.HeaderP->PackageCount); + unsigned long Count = Cache.HeaderP->PackageCount+1; + pkgCache::VerFile **VFList = new pkgCache::VerFile *[Count]; + memset(VFList,0,sizeof(*VFList)*Count); // Map versions that we want to write out onto the VerList array. for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) @@ -428,7 +429,7 @@ bool DumpAvail(CommandLine &Cmd) VFList[P->ID] = VF; } - LocalitySort(VFList,Cache.HeaderP->PackageCount,sizeof(*VFList)); + LocalitySort(VFList,Count,sizeof(*VFList)); // Iterate over all the package files and write them out. char *Buffer = new char[Cache.HeaderP->MaxVerFileSize+10]; -- cgit v1.2.3