summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpauljensen@chromium.org <pauljensen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-17 22:12:44 +0000
committerpauljensen@chromium.org <pauljensen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-17 22:12:44 +0000
commit84ef611c3324c07027530e6c4841f1bf33a5b027 (patch)
tree2db417509a3b3248e6013d19e26902b08f94267d
parent27e1434c0c2ad6d7e2393537726838ff66ad7261 (diff)
downloadchromium_src-84ef611c3324c07027530e6c4841f1bf33a5b027.zip
chromium_src-84ef611c3324c07027530e6c4841f1bf33a5b027.tar.gz
chromium_src-84ef611c3324c07027530e6c4841f1bf33a5b027.tar.bz2
Fix use after free in ChromeURLDataManagerBackend::StartRequest.
BUG=170683 Review URL: https://chromiumcodereview.appspot.com/11969046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177512 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/webui/chrome_url_data_manager_backend.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc
index 86c7e2f..25608d2 100644
--- a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc
+++ b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc
@@ -525,13 +525,16 @@ bool ChromeURLDataManagerBackend::StartRequest(const GURL& url,
MessageLoop* target_message_loop =
source->source()->MessageLoopForRequestPath(path);
if (!target_message_loop) {
+ bool is_incognito = job->is_incognito();
job->MimeTypeAvailable(source->source()->GetMimeType(path));
+ // Eliminate potentially dangling pointer to avoid future use.
+ job = NULL;
// The DataSource is agnostic to which thread StartDataRequest is called
// on for this path. Call directly into it from this thread, the IO
// thread.
source->source()->StartDataRequest(
- path, job->is_incognito(),
+ path, is_incognito,
base::Bind(&URLDataSourceImpl::SendResponse, source, request_id));
} else {
// URLRequestChromeJob should receive mime type before data. This