Free environment variable table in inprocess application (#1254)
This commit is contained in:
parent
84d4627b8b
commit
a1e8b3a9af
|
|
@ -259,7 +259,6 @@ IN_PROCESS_APPLICATION::LoadManagedApplication
|
|||
// Set up stdout redirect
|
||||
|
||||
SRWExclusiveLock lock(m_stateLock);
|
||||
|
||||
if (m_pLoggerProvider == NULL)
|
||||
{
|
||||
hr = LoggingHelpers::CreateLoggingProvider(
|
||||
|
|
@ -394,28 +393,22 @@ IN_PROCESS_APPLICATION::SetEnvironementVariablesOnWorkerProcess(
|
|||
{
|
||||
HRESULT hr = S_OK;
|
||||
ENVIRONMENT_VAR_HASH* pHashTable = NULL;
|
||||
if (FAILED(hr = ENVIRONMENT_VAR_HELPERS::InitEnvironmentVariablesTable(
|
||||
std::unique_ptr<ENVIRONMENT_VAR_HASH, ENVIRONMENT_VAR_HASH_DELETER> table;
|
||||
RETURN_IF_FAILED(hr = ENVIRONMENT_VAR_HELPERS::InitEnvironmentVariablesTable(
|
||||
m_pConfig->QueryEnvironmentVariables(),
|
||||
m_pConfig->QueryWindowsAuthEnabled(),
|
||||
m_pConfig->QueryBasicAuthEnabled(),
|
||||
m_pConfig->QueryAnonymousAuthEnabled(),
|
||||
&pHashTable)))
|
||||
{
|
||||
goto Finished;
|
||||
}
|
||||
&pHashTable));
|
||||
|
||||
pHashTable->Apply(ENVIRONMENT_VAR_HELPERS::AppendEnvironmentVariables, &hr);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
goto Finished;
|
||||
}
|
||||
pHashTable->Apply(ENVIRONMENT_VAR_HELPERS::SetEnvironmentVariables, &hr);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
goto Finished;
|
||||
}
|
||||
Finished:
|
||||
return hr;
|
||||
table.reset(pHashTable);
|
||||
|
||||
table->Apply(ENVIRONMENT_VAR_HELPERS::AppendEnvironmentVariables, &hr);
|
||||
RETURN_IF_FAILED(hr);
|
||||
|
||||
table->Apply(ENVIRONMENT_VAR_HELPERS::SetEnvironmentVariables, &hr);
|
||||
RETURN_IF_FAILED(hr);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ private:
|
|||
mutable LONG _cRefs;
|
||||
};
|
||||
|
||||
|
||||
class ENVIRONMENT_VAR_HASH : public HASH_TABLE<ENVIRONMENT_VAR_ENTRY, PWSTR>
|
||||
{
|
||||
public:
|
||||
|
|
@ -129,3 +130,12 @@ private:
|
|||
ENVIRONMENT_VAR_HASH(const ENVIRONMENT_VAR_HASH &);
|
||||
void operator=(const ENVIRONMENT_VAR_HASH &);
|
||||
};
|
||||
|
||||
struct ENVIRONMENT_VAR_HASH_DELETER
|
||||
{
|
||||
void operator ()(ENVIRONMENT_VAR_HASH* hashTable) const
|
||||
{
|
||||
hashTable->Clear();
|
||||
delete hashTable;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
|
|||
throw new InvalidOperationException("Site not stopped yet");
|
||||
}
|
||||
|
||||
if (appPool.WorkerProcesses.Any(wp => wp.State == WorkerProcessState.Running ||
|
||||
if (appPool.WorkerProcesses != null && appPool.WorkerProcesses.Any(wp => wp.State == WorkerProcessState.Running ||
|
||||
wp.State == WorkerProcessState.Stopping))
|
||||
{
|
||||
throw new InvalidOperationException("WorkerProcess not stopped yet");
|
||||
|
|
|
|||
Loading…
Reference in New Issue