From b2d96da589896ed9ebb2524f873e9fc0baa650ec Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 14 Apr 2013 16:47:01 +0200 Subject: [PATCH] BPackageInfoSet::Iterator: Fix NULL pointer dereference Since the BPackageInfoSet's map is created lazily, it can be NULL when an Iterator is constructed. --- headers/os/package/PackageInfoSet.h | 3 +-- src/kits/package/PackageInfoSet.cpp | 10 +--------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/headers/os/package/PackageInfoSet.h b/headers/os/package/PackageInfoSet.h index 35fbbdc2be..4a11f553bb 100644 --- a/headers/os/package/PackageInfoSet.h +++ b/headers/os/package/PackageInfoSet.h @@ -49,8 +49,7 @@ private: class BPackageInfoSet::Iterator { public: - Iterator(); - Iterator(const PackageMap* map); + Iterator(const PackageMap* map = NULL); bool HasNext() const; const BPackageInfo* Next(); diff --git a/src/kits/package/PackageInfoSet.cpp b/src/kits/package/PackageInfoSet.cpp index 997e1dced5..f279e67b81 100644 --- a/src/kits/package/PackageInfoSet.cpp +++ b/src/kits/package/PackageInfoSet.cpp @@ -173,18 +173,10 @@ private: // #pragma mark - Iterator -BPackageInfoSet::Iterator::Iterator() - : - fMap(NULL), - fNextInfo(NULL) -{ -} - - BPackageInfoSet::Iterator::Iterator(const PackageMap* map) : fMap(map), - fNextInfo(map->GetIterator().Next()) + fNextInfo(map != NULL ? map->GetIterator().Next() : NULL) { }