Commit Graph

2639 Commits

Author SHA1 Message Date
Hans Leidekker ddb2091623 msi: Fix a memory leak. 2010-02-19 13:06:46 +01:00
Hans Leidekker 9f68142118 msi: Encode stream name in the callers of db_get_raw_stream. 2010-02-19 13:06:41 +01:00
Hans Leidekker d9e40b8219 msi: Destroy streams cache when applying a transform. 2010-02-19 13:06:36 +01:00
Hans Leidekker f80f1cc2db msi: Accept '\5' and '-' in SQL identifiers. 2010-02-19 13:06:32 +01:00
Hans Leidekker f4bcb105d2 msi: Include run mode in fixmes. 2010-02-19 13:06:27 +01:00
Hans Leidekker 65c68efc8d msi: Implement MSIRUNMODE_MAINTENANCE and MSIRUNMODE_REBOOTATEND for MsiGetMode. 2010-02-18 14:39:11 +01:00
Hans Leidekker a11882fc0f msi: Implement MsiSetMode. 2010-02-18 14:39:06 +01:00
Hans Leidekker 7b660bb3d8 msi: Add tests for publishing and unpublishing components. 2010-02-17 10:57:45 +01:00
Hans Leidekker 0f0e81d14a msi: Implement the UnpublishComponents standard action. 2010-02-17 10:57:40 +01:00
Hans Leidekker d95e3eb4d2 msi: PublishComponents must look at the requested install state of the feature, not the component. 2010-02-17 10:57:35 +01:00
Hans Leidekker 9cbb80d984 msi: Only run the CreateFolder and RemoveFolder actions when the component is set to be installed or removed, respectively. 2010-02-16 12:29:08 +01:00
Hans Leidekker c32d9d7004 msi: Get rid of ACTION_VerifyFeatureForAction. 2010-02-16 12:29:01 +01:00
Hans Leidekker 598c542607 msi: Get rid of ACTION_VerifyComponentForAction. 2010-02-16 12:28:56 +01:00
Hans Leidekker 54391a11c0 msi: Update the UI when registering or unregistering type libraries. 2010-02-16 12:28:48 +01:00
Hans Leidekker 438ad93b22 msi: Implement and test MsiGetPatchInfoA/W. 2010-02-15 16:36:39 +01:00
Hans Leidekker b4bdfe6746 msi: Add tests for creating and removing shortcuts. 2010-02-15 12:20:02 +01:00
Hans Leidekker 2276c291fc msi: Implement the RemoveShortcuts standard action. 2010-02-15 12:20:02 +01:00
Paul Vriens 983cff23fa msi/tests: Fix a test failure on Win9x/WinMe. 2010-02-12 16:39:39 +01:00
Hans Leidekker f7879b43d5 msi: Fix a memory leak in ITERATE_StartService.
Found by Valgrind.
2010-02-12 14:49:38 +01:00
Hans Leidekker 82d50fa675 msi: Return the right error from ITERATE_RegisterTypeLibraries. 2010-02-12 14:49:38 +01:00
Hans Leidekker 98761037ab msi: Implement the UnregisterTypeLibraries standard action. 2010-02-12 14:49:38 +01:00
Hans Leidekker bbfaf6af75 msi: Add tests for installing and removing ODBC drivers. 2010-02-11 14:38:45 +01:00
Hans Leidekker 28bf8e1f0d msi: Implement the RemoveODBC standard action. 2010-02-11 14:38:45 +01:00
Hans Leidekker 2568e5ec65 msi: Make sure attrs variable is properly double nul-terminated in ITERATE_InstallODBCDataSource. 2010-02-11 14:38:45 +01:00
Hans Leidekker 4742dfba98 msi: The File_Setup field in the ODBCDriver and ODBCTranslator tables is optional. 2010-02-11 14:38:45 +01:00
Paul Vriens 312e4f6b23 msi/tests: Run the 'in_use' tests again. 2010-02-10 17:31:28 +01:00
Hans Leidekker 068cb1291b msi: Add a partial implementation of the ValidateProductID standard action. 2010-02-10 14:31:49 +01:00
Hans Leidekker 7331b3ca98 msi: Implement the UnregisterFonts standard action. 2010-02-10 14:31:15 +01:00
Hans Leidekker 5df62d0c42 msi: Add stub implementations of the DisableRollback and InstallAdminPackage standard actions. 2010-02-10 14:31:05 +01:00
Alexandre Julliard 9644d1dcd7 makefiles: Generate a general catch-all dependency on .tab.h files to replace the manually maintained ones. 2010-02-08 20:58:00 +01:00
Hans Leidekker f5af1ca399 msi: Implement the SelfUnregModules standard action. 2010-02-05 15:33:11 +01:00
Hans Leidekker 3864ddf9f2 msi: Implement the RemoveFolders standard action. 2010-02-05 15:33:05 +01:00
Marcus Meissner 5c4a3bd61b msi: Handle some error returns (Coverity). 2010-02-04 17:27:34 +01:00
Marcus Meissner 9fab263d39 msi: Call Custom function via wrapper. 2010-02-04 14:06:34 +01:00
Hans Leidekker b9da31f112 msi: Implement the DeleteServices standard action. 2010-02-04 13:39:29 +01:00
Hans Leidekker 3d38c07706 msi: Add tests for the _Streams table implementation. 2010-02-04 13:39:29 +01:00
Hans Leidekker 19b50cff34 msi: Fix an off-by-one error in STREAMS_find_matching_rows. 2010-02-04 13:39:29 +01:00
Hans Leidekker 95a21c27da msi: Give the Name field from the _Streams table a valid type. 2010-02-04 13:39:29 +01:00
Hans Leidekker 24dd10c6b0 msi: Make room for the new row in STREAMS_insert_row. 2010-02-04 13:39:28 +01:00
Hans Leidekker c1940c1c5f msi: Allow overwriting an existing stream in STREAMS_set_row. 2010-02-04 13:39:28 +01:00
Hans Leidekker dcbe0fdff2 msi: Encode the stream name before trying to open it. 2010-02-04 13:39:28 +01:00
Hans Leidekker b833ae0263 msi: Improve error handling in STREAMS_set_row and add_streams_to_table. 2010-02-04 13:39:28 +01:00
Hans Leidekker 5741df2e58 msi: Implement STREAMS_get_row. 2010-02-04 13:39:28 +01:00
Hans Leidekker 74d6fe35a2 msi: Remove unused and redundant name field from STREAM structure. 2010-02-04 13:39:28 +01:00
Juan Lang aafcf1a536 msi: Remove function name from fixme. 2010-02-04 13:39:28 +01:00
Michael Stefaniuc 643f55abab msi: Don't print the function name twice in a WARN. 2010-02-04 13:39:28 +01:00
André Hentschel 06e15ee9e6 msi: Copy InstallerImpl_LastErrorRecord to use it for DatabaseImpl. 2010-02-04 13:39:26 +01:00
Hans Leidekker 9a0020ade9 msi: Move some helpers to the module where they are used. 2010-02-03 11:31:48 +01:00
Hans Leidekker 29f47299c2 msi: Implement the ScheduleReboot standard action. 2010-02-03 11:31:48 +01:00
Hans Leidekker 552a9c9b85 msi: Add a stub implementation of the SetODBCFolders standard action. 2010-02-03 11:31:48 +01:00
Hans Leidekker 743ead45c8 msi: Test duplicating files from a nonexistent component. 2010-02-02 11:47:19 +01:00
André Hentschel 3299bfd471 msi: Fix crash with access to component. 2010-02-02 11:47:19 +01:00
Paul Vriens 086711818b msi/tests: Fix some test failures on Win9x up to W2K. 2010-02-02 11:47:19 +01:00
Luca Bennati 2197da7770 msi: Fix Italian translation. 2010-02-01 12:48:13 +01:00
Hans Leidekker 246f9305e9 msi: Don't fail if the service to start is already running. 2010-02-01 12:11:18 +01:00
Michael Stefaniuc a0774cabab msi: Avoid using HIWORD() on string pointers. 2010-01-29 17:25:49 +01:00
Igor Paliychuk 0ee3836844 msi: Add Ukrainian translations. 2010-01-29 13:30:04 +01:00
Hans Leidekker 1d0db2b19b msi: Don't create all directories in the CreateFolders action.
The CreatFolders action should create only the directories listed in the
CreateFolder table, the rest will be created during the InstallFiles action.
Fixes the EndNote 8 installer.
2010-01-28 15:30:26 +01:00
Hans Leidekker aa19638cb9 msi: Improve some traces. 2010-01-28 15:30:25 +01:00
Hans Leidekker 7c9cb1e1be msi: Name and arguments in the service control table are formatted strings. 2010-01-28 15:30:25 +01:00
Hans Leidekker 4d14ea47f7 msi: Add a test for MsiSetTargetPath. 2010-01-28 15:30:25 +01:00
Hans Leidekker 0d770c96fe msi: Don't evaluate the condition table when there are overrides. 2010-01-27 18:46:08 +01:00
Hans Leidekker 36b654e695 msi: Add tests for updating rows in join tables. 2010-01-22 13:09:15 +01:00
Hans Leidekker 882e4fb233 msi: Add support for updating rows in join tables. 2010-01-22 13:09:11 +01:00
Alexandre Julliard de3fa09cb2 msi: Add a partial stub for the ValidateProductID control event. 2010-01-20 15:36:00 +01:00
Jason Edmeades 06c45a8d59 msi: Correct the setting of environment variables.
Contrary to the MSDN, you can 'create only' whilst using a previous value
(ie +-variable and [~];value). This breaks the install of an application
I was debugging who uses that throughout for all their variables. In
addition whilst adding some tests I've also cleaned up invalid prefix
syntax handling and semicolon removal if the original string is empty.
2010-01-20 15:34:19 +01:00
Hans Leidekker 72393c55e9 msi: Add a test to exersize the code to retrieve rows from join tables. 2010-01-19 16:50:56 +01:00
Hans Leidekker 2bfce6cfdc msi: Fix parsing of feature overrides. 2010-01-18 14:39:23 +01:00
Hans Leidekker 1423ef9923 msi: Support retrieving rows from join tables. 2010-01-18 14:39:17 +01:00
Nathan Gallaher 0c437f558c msi: Queue dynamically allocated strings in cond.y. 2010-01-08 17:03:15 +01:00
André Hentschel 2e339c471e msi/tests: Remove dead url. 2010-01-06 09:52:52 +01:00
Andrew Eikum d1a916a614 msi: Implement recursive INSTALLSTATE updates for msi treeview selector. 2010-01-06 09:51:17 +01:00
Alexandre Julliard dcf1a0c891 msi: Fix some pointer cast warnings on 64-bit. 2009-12-31 12:12:15 +01:00
Marcus Meissner e2f7946bbc msi: Removed unnecessary NULL check. 2009-12-22 13:48:26 +01:00
Paul Vriens 4749b079b5 msi/tests: Fix test failures on Win9x/WinMe. 2009-12-21 15:01:24 +01:00
Hans Leidekker 839e487c84 msi: Propagate errors from IStorage_OpenStream again in db_get_raw_stream.
Fixes a regression introduced by ef522c5ef0.
2009-12-18 11:47:46 +01:00
Hans Leidekker 699cfc915a msi: Avoid a crash in STREAMS_delete. 2009-12-18 11:47:39 +01:00
James Hawkins d9c52bfa70 msi: Free the current filename if we choose to not extract the file. 2009-12-18 11:45:30 +01:00
Hans Leidekker 178ebae4c0 msi: Reset the ALLUSERS property from to 2 to 1. 2009-12-17 14:21:39 +01:00
Hans Leidekker ff2aa7e3a6 msi: Fix download of installer packages. Return errors from msi_download_file and copy_package_to_temp. 2009-12-17 14:21:32 +01:00
James Hawkins 26d541b2a9 msi: Initialize type. If the value did not exist, type was uninitialized and passed to RegSetValueExW. 2009-12-17 13:09:46 +01:00
James Hawkins 6b403d1a31 msi: Move MSITRANSFORM and MSISTREAM and associated methods to the dabatase implementation file as they are database objects/methods. 2009-12-17 12:53:34 +01:00
James Hawkins a2f5d0e270 msi: Free the cached streams when closing the database. 2009-12-17 12:53:27 +01:00
Henri Verbeet 2102dbe854 msi: Remove an unused field from the string table. 2009-12-17 12:43:25 +01:00
Hans Leidekker 2c526b7fe7 msi: Replace the string table hash with a sorted index. 2009-12-16 13:04:35 +01:00
Hans Leidekker ef522c5ef0 msi: Clone the open stream instead of trying to open a stream again. 2009-12-16 13:04:35 +01:00
James Hawkins 8ed06175a0 msi: Free the temp buffer if we haven't assigned it to *appValue. 2009-12-16 12:42:39 +01:00
James Hawkins b530f38baa msi: Refactor freeing the import sql strings. 2009-12-16 12:42:33 +01:00
James Hawkins 1b7238a969 msi: Simplify ITERATE_WriteEnvironmentString.
Now we only allocate enough memory to exactly match the size of the
constructed string. Before, we were leaving some memory uninitialized
and overwriting the allocated memory in certain circum.
2009-12-16 12:27:11 +01:00
James Hawkins be1b1605f9 msi: Free the columns view if check_column_exists fails. 2009-12-16 12:26:59 +01:00
James Hawkins 1a4a112d76 msi: Fix a leaking record handle. 2009-12-16 12:26:51 +01:00
James Hawkins b93c2c3544 msi: Free the join view if we fail to create the table view. 2009-12-16 12:26:45 +01:00
James Hawkins 1692e1fe67 msi: Keep track of the current view in the sql parser.
This allows us to free said view in the case of a syntax error. This
also allows us to get rid of a few places where we tried to clean up
the view ourselves in the parsing code.
2009-12-16 12:26:38 +01:00
Hans Leidekker 6df6332198 msi: Reject greater than and less than string comparisons in WHERE clauses. 2009-12-15 11:45:04 +01:00
James Hawkins 8fe8a100c8 msi: Free the enumeration data returned by IEnumSTATSTG_Next. 2009-12-14 12:20:48 +01:00
James Hawkins 7abb42a994 msi: Free each table object when deleting the join view. 2009-12-14 12:20:43 +01:00
James Hawkins ee2cf9a597 msi: Free the Streams and Storages view object in their respective delete methods. 2009-12-14 12:20:39 +01:00
James Hawkins f45db6eee7 msi: Implement DROP_delete that deletes the drop view. We were leaking the view before. 2009-12-14 12:20:33 +01:00
James Hawkins 37a058208d msi: Fix a record handle leak. 2009-12-14 12:20:25 +01:00
James Hawkins d2fe01aa32 msi: Free each storage name when deleting the storages view. 2009-12-14 12:20:20 +01:00
James Hawkins 3188792a30 msi: Store the number of types we queried. We were leaking these types because we didn't have the correct count.
This change also fixes weird 8-space indenting in free_merge_tables.
2009-12-14 12:20:14 +01:00
James Hawkins 12134243c3 msi: Free each stream name when deleting the streams view. 2009-12-14 12:20:03 +01:00
James Hawkins a7fe36b327 msi: Don't free str until the last instance of its use. 2009-12-14 12:19:58 +01:00
James Hawkins f4829063bc msi: Make sure we don't access pcchValueBuf when szBuffer is NULL, as pcchValueBuf is not required to be initialized in this case. 2009-12-14 12:19:52 +01:00
Alexandre Julliard 8b50188f57 msi/tests: Fix a handle leak. 2009-12-11 20:20:30 +01:00
Chris Schafer 350cdd2fe5 msi/tests: Remove some barriers to running msi tests in parallel. 2009-12-11 17:47:30 +01:00
James Hawkins 50833f0780 msi: Wine fails the test and passes us a Session object back, so free it in this case. 2009-12-11 12:16:27 +01:00
James Hawkins e38c36a1f9 msi: Refactor the Installer.RelatedProducts method into InstallerImpl_RelatedProducts. 2009-12-11 12:16:27 +01:00
James Hawkins 105933f202 msi: Refactor the Installer.Products method into InstallerImpl_Products. 2009-12-11 12:16:27 +01:00
James Hawkins 9f09d47be3 msi: Refactor the Installer.ProductInfo method into InstallerImpl_ProductInfo. 2009-12-11 12:16:27 +01:00
James Hawkins fd2884a155 msi: Refactor the Installer.ProductState method into InstallerImpl_ProductState. 2009-12-11 12:16:27 +01:00
James Hawkins 11b4fe743a msi: Refactor the Installer.RegistryValue method into InstallerImpl_RegistryValue. 2009-12-11 12:16:27 +01:00
James Hawkins 138d5f1f6c msi: Refactor the Installer.Version method into InstallerImpl_Version. 2009-12-11 12:16:27 +01:00
James Hawkins 96c480b880 msi: Refactor the Installer.InstallProduct method into InstallerImpl_InstallProduct. 2009-12-11 12:16:27 +01:00
James Hawkins 851e4779be msi: Refactor the remaining Installer object stub methods into respective functions. 2009-12-11 12:16:27 +01:00
James Hawkins dc0889752a msi: Refactor the Installer.UILevel method into InstallerImpl_UILevel. 2009-12-11 12:16:27 +01:00
James Hawkins 18ba830ff8 msi: Refactor the Installer.SummaryInformation method to InstallerImpl_SummaryInformation. 2009-12-11 12:16:27 +01:00
James Hawkins 554e1318c0 msi: Refactor Installer.OpenProduct and Installer.OpenDatabase into respective functions. 2009-12-11 12:16:27 +01:00
James Hawkins b33d47e773 msi: Refactor the Installer.OpenPackage method into InstallerImpl_OpenPackage. 2009-12-11 12:16:26 +01:00
James Hawkins b73389b6bf msi: Refactor the Installer.CreateRecord method into InstallerImpl_CreateRecord. 2009-12-11 12:16:26 +01:00
James Hawkins ae58e29e5e msi: Stub out a few more Installer object methods. 2009-12-11 12:16:26 +01:00
James Hawkins 9ab7d9e21a msi: Close the original record before copying new data into it. 2009-12-11 12:16:26 +01:00
James Hawkins a44b653d53 msi: Fix a handle leak in the record tests. 2009-12-11 12:16:26 +01:00
James Hawkins d90aca35c4 msi: Add a NULL terminator to file->dest after reallocation. 2009-12-08 12:36:51 +01:00
James Hawkins b13803ea40 msi: Free the column info data when updating the table column info. 2009-12-08 12:36:36 +01:00
James Hawkins c20902314b msi: Make sure to free the extra row data when deleting a row. 2009-12-08 12:36:28 +01:00
Hans Leidekker 3840de5b1e msi/tests: Loosen check on kernel32 language version. 2009-12-07 14:18:29 +01:00
James Hawkins 25ab693008 msi: The second parameter to Installer.OpenPackage is optional, so set a default value of 0 if the parameter is not provided. 2009-12-07 09:49:06 +01:00
James Hawkins 1ff6c08621 msi: Verify that the first parameter to Installer.OpenPackage is a VT_BSTR.
It seems ugly to open up the parameters in pDispParams, but
DispGetParam will happily convert a VT_EMPTY to a VT_BSTR and not
return an error.
2009-12-07 09:49:06 +01:00
James Hawkins 4687604356 msi: It's possible to send in more than two parameters to Installer.OpenPackage, but sending in zero parameters should return DISP_E_TYPEMISMATCH. 2009-12-07 09:49:06 +01:00
James Hawkins b614052895 msi: Add more tests for the Installer.OpenPackage method.
The following series fixes a few leaks reported by valgrind.  We were
leaking exception info caused by Installer.OpenPackage failing when we
didn't expected it.
2009-12-07 09:49:06 +01:00
James Hawkins 7d3e664312 msi: MsiSetMode returns a UINT system error code, not a BOOL. 2009-12-04 14:34:57 +01:00
James Hawkins 6b8b82ef13 msi: ExpandEnvironmentStringsW returns the required size in characters, so multiply the required size by sizeof(WCHAR) when allocating the buffer. 2009-12-03 10:22:40 +01:00
Hans Leidekker fd8620f6c0 msi/tests: Don't check more bytes than written to the file. 2009-12-01 13:16:30 +01:00
Nathan Gallaher abb23d8bd5 msi: Support _Streams, _Storages tablename prefixes in SELECT. 2009-11-24 15:54:06 +01:00
Nathan Gallaher f7ba4b2ec0 msi/tests: Test for SELECT table.column FROM table.
Make sure that mixing table columns returns the expected
data. eg:  SELECT t1.action, t2.action FROM t1, t2
should return distinct data.
2009-11-24 15:54:00 +01:00
Nathan Gallaher 5c56e1f440 msi: Add support for table names in select statements.
Propagate tablename from 'SELECT tablename.column from tablename' queries
into VIEW_find_column(). Previously, the tablename had been dropped.
2009-11-24 15:53:53 +01:00
Michael Martin d28eabda5c msi: Shedule rename operation also for ERROR_USER_MAPPED_FILE. 2009-11-20 14:37:09 +01:00
Hans Leidekker 83e7a1214a msi: Sign extend the value when converting from a small integer. 2009-11-19 11:50:36 +01:00
Piotr Caban 1f7a07ebe3 oleaut32: Ignore milliseconds in VarDateFromUdate implementation. 2009-11-19 11:35:40 +01:00
Hans Leidekker bd4bc16147 msi: Don't set the ALLUSERS property. 2009-11-17 16:05:27 +01:00
Hans Leidekker fd549aa25d msi: Set the LogonUser property. 2009-11-17 16:05:15 +01:00
Hans Leidekker 84ddfd8739 msi: Test more variations of environment string prefixes. 2009-11-13 13:35:58 +01:00
Hans Leidekker e52531ab1d msi: Handle environment strings without a value. 2009-11-13 12:21:46 +01:00
Rob Shearman b960b967c9 msi: Improve stub for MsiGetFeatureCost{A, W} and hook the stub into the VolumeCostList dialog control. 2009-11-09 19:43:23 +01:00
Francois Gouget 97619affe5 msi/tests: Make the handler_xxx() functions static.
Also remove extraneous semi-colons.
2009-11-09 19:40:44 +01:00
Detlef Riekenberg 0839ae88ca msi/tests: MsiSetExternalUIRecord not present before Installer 3.1. 2009-11-05 11:57:21 +01:00
Hans Leidekker 808343fb5b msi: Implement MsiSetExternalUIRecord. 2009-11-03 22:23:08 +01:00
Hans Leidekker 90fa4fe155 msi: Unicode and ANSI global UI handlers are mutually exclusive. 2009-11-03 22:23:01 +01:00
Hans Leidekker 4b5248c9e0 msi: Add support for the Unicode version of the global UI handler. 2009-11-03 22:22:54 +01:00