- Fix possible dereference of empty request_ value in RequestProxy. (Issue #70)

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@68 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2010-02-03 18:21:58 +00:00
parent 0540f32f24
commit 431fc0ac73

View File

@@ -319,6 +319,7 @@ class RequestProxy : public URLRequest::Delegate,
if (!resource_stream_.get() && !request_.get()) if (!resource_stream_.get() && !request_.get())
return; return;
if (request_.get())
request_->Cancel(); request_->Cancel();
Done(); Done();
} }
@@ -441,13 +442,12 @@ class RequestProxy : public URLRequest::Delegate,
OnCompletedRequest(URLRequestStatus(URLRequestStatus::SUCCESS, 0), OnCompletedRequest(URLRequestStatus(URLRequestStatus::SUCCESS, 0),
std::string()); std::string());
resource_stream_ = NULL; resource_stream_ = NULL;
} else { } else if(request_.get()) {
if (upload_progress_timer_.IsRunning()) { if (upload_progress_timer_.IsRunning()) {
MaybeUpdateUploadProgress(); MaybeUpdateUploadProgress();
upload_progress_timer_.Stop(); upload_progress_timer_.Stop();
} }
DCHECK(request_.get());
OnCompletedRequest(request_->status(), std::string()); OnCompletedRequest(request_->status(), std::string());
request_.reset(); // destroy on the io thread request_.reset(); // destroy on the io thread
} }