On 3/15/2011 14:07, Dmitry Timoshkov wrote:
Installer in the bug 26288 requests FILE_ALL_ACCESS permission on a temp file it just created.
dlls/kernel32/path.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index e72848c..beeb14c 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -703,7 +703,7 @@ UINT WINAPI GetTempFileNameW( LPCWSTR path, LPCWSTR prefix, UINT unique, LPWSTR do { sprintfW( p, formatW, unique );
handle = CreateFileW( buffer, GENERIC_WRITE, 0, NULL,
handle = CreateFileW( buffer, GENERIC_READ|GENERIC_WRITE|GENERIC_EXECUTE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0 ); if (handle != INVALID_HANDLE_VALUE) { /* We created it */
Is it possible to add a test for that?
Nikolay Sivov nsivov@codeweavers.com wrote:
@@ -703,7 +703,7 @@ UINT WINAPI GetTempFileNameW( LPCWSTR path, LPCWSTR prefix, UINT unique, LPWSTR do { sprintfW( p, formatW, unique );
handle = CreateFileW( buffer, GENERIC_WRITE, 0, NULL,
handle = CreateFileW( buffer, GENERIC_READ|GENERIC_WRITE|GENERIC_EXECUTE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0 ); if (handle != INVALID_HANDLE_VALUE) { /* We created it */
Is it possible to add a test for that?
The problem is that wineserver directly maps access bits into the unix file mode and then unix mode to file access rights. So the only way right now to propagate exec rights to unix mode is to specify GENERIC_EXECUTE in CreateFile, and it doesn't matter what Windows does here, it shouldn't change anything.