diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-06-29 10:29:14 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-06-29 15:08:37 -0500 |
commit | ec413164bd0285d1e9b9d36538974641a109b579 (patch) | |
tree | a8c38c1c1c883eee7897efa179ce1379384871c8 /src/burn/engine/exeengine.cpp | |
parent | 7cca75c8e95f129a21c33f1f4568e90e9e397f9d (diff) | |
download | wix-ec413164bd0285d1e9b9d36538974641a109b579.tar.gz wix-ec413164bd0285d1e9b9d36538974641a109b579.tar.bz2 wix-ec413164bd0285d1e9b9d36538974641a109b579.zip |
Add embedded test.
Diffstat (limited to 'src/burn/engine/exeengine.cpp')
-rw-r--r-- | src/burn/engine/exeengine.cpp | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/src/burn/engine/exeengine.cpp b/src/burn/engine/exeengine.cpp index 701adb74..1168f5ea 100644 --- a/src/burn/engine/exeengine.cpp +++ b/src/burn/engine/exeengine.cpp | |||
@@ -687,7 +687,6 @@ extern "C" HRESULT ExeEngineRunProcess( | |||
687 | { | 687 | { |
688 | HRESULT hr = S_OK; | 688 | HRESULT hr = S_OK; |
689 | LPWSTR sczCommand = NULL; | 689 | LPWSTR sczCommand = NULL; |
690 | STARTUPINFOW si = { }; | ||
691 | PROCESS_INFORMATION pi = { }; | 690 | PROCESS_INFORMATION pi = { }; |
692 | GENERIC_EXECUTE_MESSAGE message = { }; | 691 | GENERIC_EXECUTE_MESSAGE message = { }; |
693 | int nResult = IDNOACTION; | 692 | int nResult = IDNOACTION; |
@@ -695,7 +694,6 @@ extern "C" HRESULT ExeEngineRunProcess( | |||
695 | BOOL fDelayedCancel = FALSE; | 694 | BOOL fDelayedCancel = FALSE; |
696 | BOOL fFireAndForget = BURN_PACKAGE_TYPE_EXE == pPackage->type && pPackage->Exe.fFireAndForget; | 695 | BOOL fFireAndForget = BURN_PACKAGE_TYPE_EXE == pPackage->type && pPackage->Exe.fFireAndForget; |
697 | BOOL fInheritHandles = BURN_PACKAGE_TYPE_BUNDLE == pPackage->type; | 696 | BOOL fInheritHandles = BURN_PACKAGE_TYPE_BUNDLE == pPackage->type; |
698 | size_t cchCachedDirectory = 0; | ||
699 | 697 | ||
700 | // Always add user supplied arguments last. | 698 | // Always add user supplied arguments last. |
701 | if (wzUserArgs) | 699 | if (wzUserArgs) |
@@ -704,19 +702,10 @@ extern "C" HRESULT ExeEngineRunProcess( | |||
704 | ExitOnFailure(hr, "Failed to append user args."); | 702 | ExitOnFailure(hr, "Failed to append user args."); |
705 | } | 703 | } |
706 | 704 | ||
707 | // CreateProcessW has undocumented MAX_PATH restriction for lpCurrentDirectory even when long path support is enabled. | ||
708 | if (wzCachedDirectory && FAILED(::StringCchLengthW(wzCachedDirectory, MAX_PATH - 1, &cchCachedDirectory))) | ||
709 | { | ||
710 | wzCachedDirectory = NULL; | ||
711 | } | ||
712 | |||
713 | // Make the cache location of the executable the current directory to help those executables | 705 | // Make the cache location of the executable the current directory to help those executables |
714 | // that expect stuff to be relative to them. | 706 | // that expect stuff to be relative to them. |
715 | si.cb = sizeof(si); | 707 | hr = CoreCreateProcess(wzExecutablePath, sczCommand ? sczCommand : sczBaseCommand, fInheritHandles, CREATE_NO_WINDOW, wzCachedDirectory, 0, &pi); |
716 | if (!::CreateProcessW(wzExecutablePath, sczCommand ? sczCommand : sczBaseCommand, NULL, NULL, fInheritHandles, CREATE_NO_WINDOW, NULL, wzCachedDirectory, &si, &pi)) | 708 | ExitOnFailure(hr, "Failed to CreateProcess on path: %ls", wzExecutablePath); |
717 | { | ||
718 | ExitWithLastError(hr, "Failed to CreateProcess on path: %ls", wzExecutablePath); | ||
719 | } | ||
720 | 709 | ||
721 | message.type = GENERIC_EXECUTE_MESSAGE_PROCESS_STARTED; | 710 | message.type = GENERIC_EXECUTE_MESSAGE_PROCESS_STARTED; |
722 | message.dwUIHint = MB_OK; | 711 | message.dwUIHint = MB_OK; |