summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp1
-rw-r--r--src/dlls/mscoree/unixinterface.cpp6
2 files changed, 6 insertions, 1 deletions
diff --git a/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp b/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp
index e7323c177a..4f6ffa0330 100644
--- a/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp
+++ b/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp
@@ -290,6 +290,7 @@ int ExecuteManagedAssembly(
if (!SUCCEEDED(st))
{
fprintf(stderr, "ExecuteAssembly failed - status: 0x%08x\n", st);
+ exitCode = -1;
}
}
else
diff --git a/src/dlls/mscoree/unixinterface.cpp b/src/dlls/mscoree/unixinterface.cpp
index 2eaa1b81cb..1cd9d679b8 100644
--- a/src/dlls/mscoree/unixinterface.cpp
+++ b/src/dlls/mscoree/unixinterface.cpp
@@ -124,7 +124,11 @@ HRESULT ExecuteAssembly(
LPCSTR entryPointMethodName,
DWORD* exitCode)
{
- *exitCode = 0;
+ if (exitCode == NULL)
+ {
+ return HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER);
+ }
+ *exitCode = -1;
DWORD error = PAL_InitializeCoreCLR(exePath, coreClrPath, true);
HRESULT hr = HRESULT_FROM_WIN32(error);