Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: content/browser/appcache/appcache_interceptor.cc

Issue 1566713004: Fix a null AppCacheBackendImpl ptr crash in CompleteCrossSiteTransfer and re… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: doc comment Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/appcache/appcache_interceptor.cc
diff --git a/content/browser/appcache/appcache_interceptor.cc b/content/browser/appcache/appcache_interceptor.cc
index 81985fe704aaed15465eb0122226eba4586bae78..7c43c10c3fb10772f9879d8dc166a431e9d544d7 100644
--- a/content/browser/appcache/appcache_interceptor.cc
+++ b/content/browser/appcache/appcache_interceptor.cc
@@ -9,6 +9,9 @@
#include "content/browser/appcache/appcache_request_handler.h"
#include "content/browser/appcache/appcache_service_impl.h"
#include "content/browser/appcache/appcache_url_request_job.h"
+#include "content/browser/appcache/chrome_appcache_service.h"
+#include "content/browser/bad_message.h"
+#include "content/browser/loader/resource_message_filter.h"
#include "content/common/appcache_interfaces.h"
#include "net/url_request/url_request.h"
@@ -76,10 +79,16 @@ void AppCacheInterceptor::PrepareForCrossSiteTransfer(
void AppCacheInterceptor::CompleteCrossSiteTransfer(
net::URLRequest* request,
int new_process_id,
- int new_host_id) {
+ int new_host_id,
+ ResourceMessageFilter* filter) {
AppCacheRequestHandler* handler = GetHandler(request);
if (!handler)
return;
+ if (!handler->SanityCheckIsSameService(filter->appcache_service())) {
+ bad_message::ReceivedBadMessage(filter,
+ bad_message::ACI_WRONG_STORAGE_PARITION);
nasko 2016/01/15 19:38:24 You have a missing T in PARTITION.
+ return;
+ }
DCHECK_NE(kAppCacheNoHostId, new_host_id);
handler->CompleteCrossSiteTransfer(new_process_id,
new_host_id);

Powered by Google App Engine
This is Rietveld 408576698