From c634f34aae0d35d3fe9a687abd86e8c0832b7d17 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 7 Jan 2016 08:01:38 +0100 Subject: [PATCH] cmd: Fix sharing permissions of piped output files. Signed-off-by: Sebastian Lackner Signed-off-by: Alexandre Julliard --- programs/cmd/tests/test_builtins.cmd.exp | 2 +- programs/cmd/wcmdmain.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 811ba9f7238..7543b53959a 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -1207,7 +1207,7 @@ passed --- a batch file can delete itself file correctly deleted --- a batch file can alter itself -@todo_wine@bar +bar ---------- Testing copy Passed: Found expected dummy.file Passed: Found expected dir1\file1 diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c index bf988f57b32..de92e0a5166 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -1364,7 +1364,7 @@ void WCMD_execute (const WCHAR *command, const WCHAR *redirects, if (cmdList && (*cmdList)->pipeFile[0] != 0x00) { WINE_TRACE("Input coming from %s\n", wine_dbgstr_w((*cmdList)->pipeFile)); h = CreateFileW((*cmdList)->pipeFile, GENERIC_READ, - FILE_SHARE_READ, &sa, OPEN_EXISTING, + FILE_SHARE_READ | FILE_SHARE_WRITE, &sa, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL); if (h == INVALID_HANDLE_VALUE) { WCMD_print_error (); @@ -1425,8 +1425,8 @@ void WCMD_execute (const WCHAR *command, const WCHAR *redirects, } else { WCHAR *param = WCMD_parameter(p, 0, NULL, FALSE, FALSE); - h = CreateFileW(param, GENERIC_WRITE, 0, &sa, creationDisposition, - FILE_ATTRIBUTE_NORMAL, NULL); + h = CreateFileW(param, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_DELETE, + &sa, creationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); if (h == INVALID_HANDLE_VALUE) { WCMD_print_error (); heap_free(cmd);