diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2005-09-22 13:36:39 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2005-09-22 13:36:39 +0000 |
commit | 14cd494a9fa0d6801410bf121beb74ea631d59a6 (patch) | |
tree | b25799799bb1f9d78ab167b91f21763ae3764aaa /apt-pkg/pkgrecords.cc | |
parent | ceb00be9927199c067827a630ddc254149afcb57 (diff) |
* make sure that the pkgRecords D'tor does not segfault
Diffstat (limited to 'apt-pkg/pkgrecords.cc')
-rw-r--r-- | apt-pkg/pkgrecords.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/apt-pkg/pkgrecords.cc b/apt-pkg/pkgrecords.cc index 9c2655d6a..1d71d3e2f 100644 --- a/apt-pkg/pkgrecords.cc +++ b/apt-pkg/pkgrecords.cc @@ -42,6 +42,9 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0) if (Files[I->ID] == 0) return; } + // We store that to make sure that the destructor won't segfault, + // even if the Cache object was destructed before this instance. + PackageFileCount = Cache.HeaderP->PackageFileCount; } /*}}}*/ // Records::~pkgRecords - Destructor /*{{{*/ @@ -49,7 +52,7 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0) /* */ pkgRecords::~pkgRecords() { - for (unsigned I = 0; I != Cache.HeaderP->PackageFileCount; I++) + for (unsigned I = 0; I != PackageFileCount; I++) delete Files[I]; delete [] Files; } |