Title: [248963] trunk/Source/WebKit
- Revision
- 248963
- Author
- cdu...@apple.com
- Date
- 2019-08-21 14:30:03 -0700 (Wed, 21 Aug 2019)
Log Message
Have NetworkCache::store() null check its completion handler before calling it
https://bugs.webkit.org/show_bug.cgi?id=200994
Reviewed by Geoffrey Garen.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
Stop passing nullptr for the completion handler now that the parameter has a default value.
Note that passing nullptr here was likely wrong since the NetworkCache::store() implementation
did not null-check the completion handler before calling it.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
Have NetworkCache::store() null check its completion handler before calling it as calling
a null WTF::Function crashes.
* NetworkProcess/cache/NetworkCache.h:
Use nullptr as default parameter value for the completion handler.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (248962 => 248963)
--- trunk/Source/WebKit/ChangeLog 2019-08-21 21:29:52 UTC (rev 248962)
+++ trunk/Source/WebKit/ChangeLog 2019-08-21 21:30:03 UTC (rev 248963)
@@ -1,3 +1,24 @@
+2019-08-21 Chris Dumez <cdu...@apple.com>
+
+ Have NetworkCache::store() null check its completion handler before calling it
+ https://bugs.webkit.org/show_bug.cgi?id=200994
+
+ Reviewed by Geoffrey Garen.
+
+ * NetworkProcess/NetworkResourceLoader.cpp:
+ (WebKit::NetworkResourceLoader::retrieveCacheEntry):
+ Stop passing nullptr for the completion handler now that the parameter has a default value.
+ Note that passing nullptr here was likely wrong since the NetworkCache::store() implementation
+ did not null-check the completion handler before calling it.
+
+ * NetworkProcess/cache/NetworkCache.cpp:
+ (WebKit::NetworkCache::Cache::store):
+ Have NetworkCache::store() null check its completion handler before calling it as calling
+ a null WTF::Function crashes.
+
+ * NetworkProcess/cache/NetworkCache.h:
+ Use nullptr as default parameter value for the completion handler.
+
2019-08-21 Rob Buis <rb...@igalia.com>
Verify Prefetch and credential behavior
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (248962 => 248963)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-08-21 21:29:52 UTC (rev 248962)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-08-21 21:30:03 UTC (rev 248963)
@@ -231,7 +231,7 @@
auto buffer = entry->releaseBuffer();
auto cacheEntry = m_cache->makeEntry(request, entry->response, buffer.copyRef());
retrieveCacheEntryInternal(WTFMove(cacheEntry), ResourceRequest { request });
- m_cache->store(request, entry->response, WTFMove(buffer), nullptr);
+ m_cache->store(request, entry->response, WTFMove(buffer));
return;
}
}
Modified: trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.cpp (248962 => 248963)
--- trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.cpp 2019-08-21 21:29:52 UTC (rev 248962)
+++ trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.cpp 2019-08-21 21:30:03 UTC (rev 248963)
@@ -415,7 +415,8 @@
mappedBody.shareableResource->createHandle(mappedBody.shareableResourceHandle);
}
#endif
- completionHandler(mappedBody);
+ if (completionHandler)
+ completionHandler(mappedBody);
LOG(NetworkCache, "(NetworkProcess) stored");
});
Modified: trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.h (248962 => 248963)
--- trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.h 2019-08-21 21:29:52 UTC (rev 248962)
+++ trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.h 2019-08-21 21:30:03 UTC (rev 248963)
@@ -115,7 +115,7 @@
};
using RetrieveCompletionHandler = Function<void(std::unique_ptr<Entry>, const RetrieveInfo&)>;
void retrieve(const WebCore::ResourceRequest&, const GlobalFrameID&, RetrieveCompletionHandler&&);
- std::unique_ptr<Entry> store(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, RefPtr<WebCore::SharedBuffer>&&, Function<void(MappedBody&)>&&);
+ std::unique_ptr<Entry> store(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, RefPtr<WebCore::SharedBuffer>&&, Function<void(MappedBody&)>&& = nullptr);
std::unique_ptr<Entry> storeRedirect(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, const WebCore::ResourceRequest& redirectRequest, Optional<Seconds> maxAgeCap);
std::unique_ptr<Entry> update(const WebCore::ResourceRequest&, const GlobalFrameID&, const Entry&, const WebCore::ResourceResponse& validatingResponse);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes