[PATCH 0/2] MR11751: msi: Propagate ERROR_NO_MORE_ITEMS return from custom actions.
From: Hans Leidekker <hans@codeweavers.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48534 --- dlls/msi/custom.c | 3 +-- dlls/msi/tests/install.c | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c index 0c9bce2d198..64e434ddcaa 100644 --- a/dlls/msi/custom.c +++ b/dlls/msi/custom.c @@ -331,9 +331,8 @@ static UINT custom_get_thread_return( MSIPACKAGE *package, HANDLE thread ) case ERROR_SUCCESS: case ERROR_INSTALL_USEREXIT: case ERROR_INSTALL_FAILURE: - return rc; case ERROR_NO_MORE_ITEMS: - return ERROR_SUCCESS; + return rc; case ERROR_INSTALL_SUSPEND: ACTION_ForceReboot( package ); return ERROR_SUCCESS; diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c index dc1dd24fe58..ef665d10beb 100644 --- a/dlls/msi/tests/install.c +++ b/dlls/msi/tests/install.c @@ -659,6 +659,7 @@ static const CHAR ca1_install_exec_seq_dat[] = "Action\tCondition\tSequence\n" "embednull\t\t600\n" "maintest\tMAIN_TEST\t700\n" "testretval\tTEST_RETVAL\t710\n" + "testretvalfail\tTEST_RETVAL=259\t715\n" "process1\tTEST_PROCESS\t720\n" "process2\tTEST_PROCESS\t721\n" "process_deferred\tTEST_PROCESS\t722\n" @@ -678,7 +679,8 @@ static const CHAR ca1_custom_action_dat[] = "Action\tType\tSource\tTarget\n" "process_deferred\t1025\tcustom.dll\tprocess2\n" "async1\t129\tcustom.dll\tasync1\n" "async2\t1\tcustom.dll\tasync2\n" - "testretval\t1\tcustom.dll\ttest_retval\n"; + "testretval\t1\tcustom.dll\ttest_retval\n" + "testretvalfail\t19\t\taction should not run\n"; static const CHAR ca1_test_seq_dat[] = "Action\tCondition\tSequence\n" "s72\tS255\tI2\n" -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11751
From: Hans Leidekker <hans@codeweavers.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=60221 --- dlls/msi/custom.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c index 64e434ddcaa..6ea99ef28e5 100644 --- a/dlls/msi/custom.c +++ b/dlls/msi/custom.c @@ -996,18 +996,23 @@ static UINT HANDLE_CustomType19( MSIPACKAGE *package, const WCHAR *source, const static WCHAR *build_msiexec_args( const WCHAR *filename, const WCHAR *params ) { - UINT len_filename = lstrlenW( filename ), len_params = lstrlenW( params ); + UINT len_filename = wcslen( filename ), len_params = 0; UINT len = ARRAY_SIZE(L"/qb /i ") - 1; WCHAR *ret; + if (params) len_params = wcslen( params ); if (!(ret = malloc( (len + len_filename + len_params + 4) * sizeof(WCHAR) ))) return NULL; + memcpy( ret, L"/qb /i ", sizeof(L"/qb /i ") ); ret[len++] = '"'; memcpy( ret + len, filename, len_filename * sizeof(WCHAR) ); len += len_filename; ret[len++] = '"'; - ret[len++] = ' '; - lstrcpyW( ret + len, params ); + if (params) + { + ret[len++] = ' '; + wcscpy( ret + len, params ); + } return ret; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11751
participants (2)
-
Hans Leidekker -
Hans Leidekker (@hans)