diff options
author | cpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-30 00:59:41 +0000 |
---|---|---|
committer | cpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-30 00:59:41 +0000 |
commit | 6938aeec058cfe1b2a83c2192fd41dfbdfd06e4b (patch) | |
tree | a09a4177c3f81c6ff96c6a545bb66df45db27321 /sandbox | |
parent | b62d9392521f1484f630fd5d6a9cdf837aec1ba2 (diff) | |
download | chromium_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.cc | 5 |
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 |