msi: Remove read-only bit when copying the package file.
CopyFileW also copies the file attributes, and the copy will be opened with write access later on. Signed-off-by: Jérôme Gardou <jerome.gardou@reactos.org> Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d6fed9c360
commit
e830975806
|
@ -1371,6 +1371,8 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage)
|
||||||
r = get_local_package( db, localfile );
|
r = get_local_package( db, localfile );
|
||||||
if (r != ERROR_SUCCESS || GetFileAttributesW( localfile ) == INVALID_FILE_ATTRIBUTES)
|
if (r != ERROR_SUCCESS || GetFileAttributesW( localfile ) == INVALID_FILE_ATTRIBUTES)
|
||||||
{
|
{
|
||||||
|
DWORD localfile_attr;
|
||||||
|
|
||||||
r = msi_create_empty_local_file( localfile, L".msi" );
|
r = msi_create_empty_local_file( localfile, L".msi" );
|
||||||
if (r != ERROR_SUCCESS)
|
if (r != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
|
@ -1387,6 +1389,11 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
delete_on_close = TRUE;
|
delete_on_close = TRUE;
|
||||||
|
|
||||||
|
/* Remove read-only bit, we are opening it with write access in MSI_OpenDatabaseW below. */
|
||||||
|
localfile_attr = GetFileAttributesW( localfile );
|
||||||
|
if (localfile_attr & FILE_ATTRIBUTE_READONLY)
|
||||||
|
SetFileAttributesW( localfile, localfile_attr & ~FILE_ATTRIBUTE_READONLY);
|
||||||
}
|
}
|
||||||
else if (dwOptions & WINE_OPENPACKAGEFLAGS_RECACHE)
|
else if (dwOptions & WINE_OPENPACKAGEFLAGS_RECACHE)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue