3862 Commits

Author SHA1 Message Date
Francois Gouget
ad735ca1f3 msi/tests: Add a trailing '\n' to an ok() call.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-14 15:32:23 +01:00
Hans Leidekker
85fea53af8 msi: Only perform the media check if the label of the disk entry differs from the last.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40433
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-07 10:47:21 -06:00
Nikolay Sivov
a853bb6d0a msi/tests: Use more reasonable buffer sizes for guid strings (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-07 10:47:21 -06:00
Alexandre Julliard
a47343b973 msi: Return an error code instead of a button id in msi_change_media().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-03 12:49:39 +01:00
Alex Henrie
6a833ce0b3 msi: Turn several variables and constants into static constants.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-30 19:36:51 +01:00
Brendan McGrath
256ca317a2 msi: Set stale function pointers to NULL.
A crash occurs during install of dotnet35 on a 64-bit prefix
as when msi_destroy_assembly_caches is called, the mscoree
library is unloaded but the function pointers are not set back
to NULL.

Signed-off-by: Brendan McGrath <brendan@redmandi.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 12:25:55 +01:00
Hans Leidekker
49e9fa376c msi: Increase MSI_INITIAL_MEDIA_TRANSFORM_DISKID to avoid conflicts.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 16:26:04 +01:00
André Hentschel
d5a169463b msi: Allow ARM64 installations.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:21:51 +01:00
Hans Leidekker
ef86011ba4 msi: Support substorage transforms in MsiDatabaseApplyTransform.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40206
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:10 +01:00
Pierre Schweitzer
0dd0d879a1 msi: Don't consider read-only drives when enumerating volumes.
Signed-off-by: Pierre Schweitzer <pierre@reactos.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 10:35:15 +01:00
Fabian Maurer
84e6b33191 msi: In dialogs show titlebar buttons.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46080
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 10:34:49 +01:00
Hans Leidekker
b33b8cab0d msi: Avoid duplicate product codes in FindRelatedProducts.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:18:07 +01:00
Hans Leidekker
c494570d89 msi: Fix the remote case for MsiViewModify(MSIMODIFY_UPDATE).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45972
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 17:06:53 +02:00
Hans Leidekker
965ca1b4de msi: Fix memory leaks.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 17:06:52 +02:00
Hans Leidekker
8386157caa msi/tests: Add tests for directory properties.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-10 17:44:13 +02:00
Hans Leidekker
de78ca24a5 msi: Remove unused fields from MSIFOLDER.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-10 17:44:11 +02:00
Hans Leidekker
14ddb49df2 msi: Rename msi_reset_folders to msi_reset_source_folders.
It was always called with source parameter set to TRUE.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-10 17:44:09 +02:00
Hans Leidekker
97a7a4ff0c msi: Add support for control event DirectoryListNew.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=25687
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:25 -07:00
Hans Leidekker
1cb4367763 msi: Fix a couple of memory leaks (Valgrind).
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:23 -07:00
Hans Leidekker
78af6e341f msi: Add support for ARPNOMODIFY, APRNOREMOVE and ARPNOREPAIR.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-27 16:32:40 +02:00
Hans Leidekker
1be65cbb46 msi/tests: SQLGetInstalledDrivers fails if there are no ODBC drivers installed.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-27 16:32:40 +02:00
Hans Leidekker
7bf2a1b209 msi: Allow recursive changes to the target folder path.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 16:53:13 +02:00
Hans Leidekker
6a3e79b002 msi/tests: Drop workarounds for Windows 2000.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 16:53:10 +02:00
Dmitry Timoshkov
06fd9bb317 msi/tests: Add a test for repetitive MsiGetActiveDatabase calls.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:21:26 +02:00
Dmitry Timoshkov
ff01293708 msi/tests: Also test full range of properties for MsiSummaryInfoSetPropertyW.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:21:23 +02:00
Dmitry Timoshkov
b857369f87 msi: Do not attempt to copy a non-string property in MsiSummaryInfoGetProperty.
This patch fixes the crashes when running the tests under Wine.
Currently the crashes are hidden by a custom action exception handler.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:20:51 +02:00
Dmitry Timoshkov
7929c31ea7 msi: Move parameter checks to a common helper in MsiSummaryInfoSetProperty.
Currently MsiSummaryInfoSetProperty tests don't have a chance to execute under
Wine because the tests crash earlier, and the crashes are hidden by a custom
action exception handler. This patch simplifies the next one.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:20:44 +02:00
Dmitry Timoshkov
09e4240f33 msi: Fix a typo.
Should fix the regression introduced by baea371c3d4153bc4a718c07f46971d4d39aa9f3.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-18 12:28:09 +02:00
Dmitry Timoshkov
69b7e09fa7 msi/tests: Add more tests for remote MsiSummaryInfoGetProperty.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 12:30:19 +02:00
Dmitry Timoshkov
ce2ebd7275 msi: Handle the remote case in MsiSummaryInfoGetProperty.
This patch fixes the regression introduced by bf5589311de8ac2c74e3bd73bef32337a2ce8df2.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 12:30:16 +02:00
Dmitry Timoshkov
00b8b3c5e0 msi: Handle the remote case in MsiSummaryInfoGetPropertyCount.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 12:30:14 +02:00
Dmitry Timoshkov
190ef475fa msi: Handle the remote case in MsiSummaryInfoSetProperty.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 12:30:11 +02:00
Dmitry Timoshkov
4acd7b6c45 msi/tests: Add some tests for remote MSI summary info APIs.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 12:30:05 +02:00
Zebediah Figura
baea371c3d msi: Add exception handling around all custom action RPC calls.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 12:30:01 +02:00
Zebediah Figura
12195e450f msi: Skip publishing a local assembly with no corresponding file.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45735
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-04 09:53:21 +02:00
Zebediah Figura
9a96657910 msi/tests: Remove some workarounds in test_publish_assemblies().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-04 09:53:19 +02:00
Michael Stefaniuc
a9cb67bb7f msi: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-21 10:22:10 +02:00
Zebediah Figura
51ad009bac msi: Don't assume that WoW64 redirection is enabled in custom_start_server().
As of 3a884c2ef the server is started on the main thread, so this is no
longer a valid assumption. In particular, we disable WoW64 redirection while
running standard actions, including the top-level INSTALL action.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45663
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-20 19:39:14 +02:00
Michael Stefaniuc
c2add8a030 msi: Unlock msi_custom_action_c on the error paths.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45483
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 16:51:02 +02:00
Zebediah Figura
6387476d99 msi/tests: Add a test for asynchronous custom actions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 18:41:18 +02:00
Zebediah Figura
b7f06accb0 msi: Don't refcount the msi_custom_action_info struct.
This is unnecessary, and may have always been so. The struct will either be
freed after it completes synchronously, or after it has completed
asynchronously in ACTION_FinishCustomActions().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 18:41:11 +02:00
Zebediah Figura
583edf7f59 msi: Protect communication with the custom action server with a critical section.
Avoids a potential race whereby an asynchronous custom action receives the
wrong thread handle.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 18:41:08 +02:00
Zebediah Figura
3a884c2ef7 msi: Don't start the custom action server inside of custom_client_thread().
Asynchronous custom actions don't wait for custom_client_thread() to
terminate, so it's possible for two consecutive actions to both try to start
the server at once, causing failures when the second action e.g. receives
ERROR_PIPE_BUSY from CreateNamedPipe().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 18:41:04 +02:00
Michael Stefaniuc
b8027768b8 msi: Avoid an ARRAY_SIZE-like macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:16:00 +02:00
Zebediah Figura
6925846988 msi: Generate unique names for 32- and 64-bit custom action server pipes.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Zebediah Figura
2a9e0f1fad msi: Implement deferral for standard and custom actions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Marcus Meissner
9f1cdb4970 msi: Do not free hPackage twice or uninitialized (Coverity).
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 09:39:55 +02:00
Hans Leidekker
ddf762a82f msi: Use msi_get_package_code in msi_publish_product_properties.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 14:13:43 +02:00
Piotr Caban
7837ae20cd msi: Fix condition evaluation when comparing literal and integer.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45445
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-16 09:14:19 +02:00
Zebediah Figura
457431ab5b msi: Reuse the custom action server process where possible.
We use a named pipe to communicate between the client (i.e. the process that
called MsiInstallProduct() and the custom action server. The naïve approach
has the client send custom action GUIDs to the server and the server send
back the results of executing the action, but this fails in the case of
nested custom actions, so instead we send back handles of threads for the
client to wait on.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00