From 3de845aa196d4554205451101ecb54376b42c980 Mon Sep 17 00:00:00 2001 From: Bogdan Postelnicu Date: Thu, 25 Feb 2016 20:41:52 +0200 Subject: [PATCH] Bug 1251253 - prevent null pointer dereference of |aContext| in CacheStorageService::DoomStorageEntries. r=mayhemer MozReview-Commit-ID: BmXXg4eW25n --HG-- extra : rebase_source : 35ca2824ebdd618fef7b6de4858de8214571f466 --- netwerk/cache2/CacheStorageService.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/netwerk/cache2/CacheStorageService.cpp b/netwerk/cache2/CacheStorageService.cpp index 34e7ee410374..d46d9495d200 100644 --- a/netwerk/cache2/CacheStorageService.cpp +++ b/netwerk/cache2/CacheStorageService.cpp @@ -1799,15 +1799,19 @@ CacheStorageService::DoomStorageEntries(nsCSubstring const& aContextKey, { mozilla::MutexAutoLock lock(mForcedValidEntriesLock); - for (auto iter = mForcedValidEntries.Iter(); !iter.Done(); iter.Next()) { - bool matches; - DebugOnly rv = CacheFileUtils::KeyMatchesLoadContextInfo( - iter.Key(), aContext, &matches); - MOZ_ASSERT(NS_SUCCEEDED(rv)); + if (aContext) { + for (auto iter = mForcedValidEntries.Iter(); !iter.Done(); iter.Next()) { + bool matches; + DebugOnly rv = CacheFileUtils::KeyMatchesLoadContextInfo( + iter.Key(), aContext, &matches); + MOZ_ASSERT(NS_SUCCEEDED(rv)); - if (matches) { - iter.Remove(); + if (matches) { + iter.Remove(); + } } + } else { + mForcedValidEntries.Clear(); } }