msi: Disable some path validity checks in MsiSetTargetPath.
This commit is contained in:
parent
27bfdc2a02
commit
2ad04cae39
|
@ -336,24 +336,14 @@ UINT MSI_SetTargetPathW(MSIPACKAGE *package, LPCWSTR szFolder,
|
|||
|
||||
attrib = GetFileAttributesW(szFolderPath);
|
||||
if ( attrib != INVALID_FILE_ATTRIBUTES &&
|
||||
(!(attrib & FILE_ATTRIBUTE_DIRECTORY) ||
|
||||
attrib & FILE_ATTRIBUTE_OFFLINE ||
|
||||
attrib & FILE_ATTRIBUTE_READONLY))
|
||||
(attrib & FILE_ATTRIBUTE_OFFLINE ||
|
||||
attrib & FILE_ATTRIBUTE_READONLY)) /* actually native MSI tests writeability by making temporary files at each drive */
|
||||
return ERROR_FUNCTION_FAILED;
|
||||
|
||||
path = resolve_folder(package,szFolder,FALSE,FALSE,&folder);
|
||||
if (!path)
|
||||
return ERROR_DIRECTORY;
|
||||
|
||||
if (attrib == INVALID_FILE_ATTRIBUTES)
|
||||
{
|
||||
if (!CreateDirectoryW(szFolderPath,NULL))
|
||||
{
|
||||
msi_free( path );
|
||||
return ERROR_FUNCTION_FAILED;
|
||||
}
|
||||
RemoveDirectoryW(szFolderPath);
|
||||
}
|
||||
|
||||
msi_free(folder->Property);
|
||||
folder->Property = build_directory_name(2, szFolderPath, NULL);
|
||||
|
|
|
@ -404,14 +404,10 @@ static void test_settargetpath(void)
|
|||
{
|
||||
sprintf( tempdir, "%s\\subdir", buffer );
|
||||
r = MsiSetTargetPath( hpkg, "TARGETDIR", buffer );
|
||||
todo_wine {
|
||||
ok( r == ERROR_SUCCESS, "MsiSetTargetPath on file returned %d\n", r );
|
||||
}
|
||||
|
||||
r = MsiSetTargetPath( hpkg, "TARGETDIR", tempdir );
|
||||
todo_wine {
|
||||
ok( r == ERROR_SUCCESS, "MsiSetTargetPath on 'subdir' of file returned %d\n", r );
|
||||
}
|
||||
|
||||
DeleteFile( buffer );
|
||||
|
||||
|
@ -422,9 +418,7 @@ static void test_settargetpath(void)
|
|||
ok ( r == INVALID_FILE_ATTRIBUTES, "file/directory exists after MsiSetTargetPath. Attributes: %08X\n", r );
|
||||
|
||||
r = MsiSetTargetPath( hpkg, "TARGETDIR", tempdir );
|
||||
todo_wine {
|
||||
ok( r == ERROR_SUCCESS, "MsiSetTargetPath on subsubdir returned %d\n", r );
|
||||
}
|
||||
} else {
|
||||
trace("GetTempFileName failed, cannot do some tests\n");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue