summaryrefslogtreecommitdiffstats
path: root/sandbox
diff options
context:
space:
mode:
authorcpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-30 00:59:41 +0000
committercpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-30 00:59:41 +0000
commit6938aeec058cfe1b2a83c2192fd41dfbdfd06e4b (patch)
treea09a4177c3f81c6ff96c6a545bb66df45db27321 /sandbox
parentb62d9392521f1484f630fd5d6a9cdf837aec1ba2 (diff)
downloadchromium_src-6938aeec058cfe1b2a83c2192fd41dfbdfd06e4b.zip
chromium_src-6938aeec058cfe1b2a83c2192fd41dfbdfd06e4b.tar.gz
chromium_src-6938aeec058cfe1b2a83c2192fd41dfbdfd06e4b.tar.bz2
When run chrome with --no-sandbox, the renderer process calls the dtor of BrokerServicesBase. There some API calls have invalid parameters.
BUG=1296316 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sandbox')
-rw-r--r--sandbox/src/broker_services.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sandbox/src/broker_services.cc b/sandbox/src/broker_services.cc
index 5e4a2b0..ad9070f 100644
--- a/sandbox/src/broker_services.cc
+++ b/sandbox/src/broker_services.cc
@@ -90,7 +90,7 @@ ResultCode BrokerServicesBase::Init() {
no_targets_ = ::CreateEventW(NULL, TRUE, FALSE, NULL);
job_thread_ = ::CreateThread(NULL, 0, // Default security and stack.
- TargetEventsThread, this, NULL, NULL);
+ TargetEventsThread, this, NULL, NULL);
if (NULL == job_thread_)
return SBOX_ERROR_GENERIC;
@@ -103,6 +103,9 @@ ResultCode BrokerServicesBase::Init() {
// DLL_PROCESS_DETACH in other words, holding the loader lock, so we cannot
// wait for threads here.
BrokerServicesBase::~BrokerServicesBase() {
+ // If there is no port Init() was never called successfully.
+ if (!job_port_)
+ return;
// Closing the port causes, that no more Job notifications are delivered to
// the worker thread and also causes the thread to exit. This is what we
// want to do since we are going to close all outstanding Jobs and notifying