Zebediah Figura : msi: Don't load a custom action DLL in the main process.
Module: wine Branch: master Commit: e355cb62775f7fd39a03458c62334a603dcb0c78 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e355cb62775f7fd39a03458c6... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Mon Apr 30 13:36:51 2018 -0500 msi: Don't load a custom action DLL in the main process. This has no effect anymore, and won't work if the architecture doesn't match. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msi/custom.c | 16 ++++++---------- dlls/msi/msipriv.h | 1 - dlls/msi/package.c | 2 -- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c index e0781fc..ca0362b 100644 --- a/dlls/msi/custom.c +++ b/dlls/msi/custom.c @@ -235,7 +235,7 @@ WCHAR *msi_create_temp_file( MSIDATABASE *db ) return ret; } -static MSIBINARY *create_temp_binary( MSIPACKAGE *package, LPCWSTR source, BOOL dll ) +static MSIBINARY *create_temp_binary(MSIPACKAGE *package, LPCWSTR source) { static const WCHAR query[] = { 'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', @@ -272,11 +272,6 @@ static MSIBINARY *create_temp_binary( MSIPACKAGE *package, LPCWSTR source, BOOL CloseHandle( file ); if (r != ERROR_SUCCESS) goto error; - /* keep a reference to prevent the dll from being unloaded */ - if (dll && !(binary->module = LoadLibraryW( tmpfile ))) - { - ERR( "failed to load dll %s (%u)\n", debugstr_w( tmpfile ), GetLastError() ); - } binary->source = strdupW( source ); binary->tmpfile = tmpfile; list_add_tail( &package->binaries, &binary->entry ); @@ -292,7 +287,7 @@ error: return NULL; } -static MSIBINARY *get_temp_binary( MSIPACKAGE *package, LPCWSTR source, BOOL dll ) +static MSIBINARY *get_temp_binary(MSIPACKAGE *package, LPCWSTR source) { MSIBINARY *binary; @@ -302,7 +297,7 @@ static MSIBINARY *get_temp_binary( MSIPACKAGE *package, LPCWSTR source, BOOL dll return binary; } - return create_temp_binary( package, source, dll ); + return create_temp_binary(package, source); } static void file_running_action(MSIPACKAGE* package, HANDLE Handle, @@ -692,7 +687,7 @@ static UINT HANDLE_CustomType1( MSIPACKAGE *package, const WCHAR *source, const msi_custom_action_info *info; MSIBINARY *binary; - if (!(binary = get_temp_binary( package, source, TRUE ))) + if (!(binary = get_temp_binary(package, source))) return ERROR_FUNCTION_FAILED; TRACE("Calling function %s from %s\n", debugstr_w(target), debugstr_w(binary->tmpfile)); @@ -776,7 +771,8 @@ static UINT HANDLE_CustomType2( MSIPACKAGE *package, const WCHAR *source, const HANDLE handle; WCHAR *arg; - if (!(binary = get_temp_binary( package, source, FALSE ))) return ERROR_FUNCTION_FAILED; + if (!(binary = get_temp_binary(package, source))) + return ERROR_FUNCTION_FAILED; deformat_string( package, target, &arg ); TRACE("exe %s arg %s\n", debugstr_w(binary->tmpfile), debugstr_w(arg)); diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h index aede960..46cbb43 100644 --- a/dlls/msi/msipriv.h +++ b/dlls/msi/msipriv.h @@ -206,7 +206,6 @@ typedef struct tagMSIBINARY struct list entry; WCHAR *source; WCHAR *tmpfile; - HMODULE module; } MSIBINARY; typedef struct _column_info diff --git a/dlls/msi/package.c b/dlls/msi/package.c index a2fa785..3de3113 100644 --- a/dlls/msi/package.c +++ b/dlls/msi/package.c @@ -290,8 +290,6 @@ static void free_package_structures( MSIPACKAGE *package ) MSIBINARY *binary = LIST_ENTRY( item, MSIBINARY, entry ); list_remove( &binary->entry ); - if (binary->module) - FreeLibrary( binary->module ); if (!DeleteFileW( binary->tmpfile )) ERR("failed to delete %s (%u)\n", debugstr_w(binary->tmpfile), GetLastError()); msi_free( binary->source );
participants (1)
-
Alexandre Julliard