Module: wine Branch: master Commit: bded698462a05e3acb976cfb115fe5059422684a URL: http://source.winehq.org/git/wine.git/?a=commit;h=bded698462a05e3acb976cfb11...
Author: Bernhard Loos bernhardloos@googlemail.com Date: Mon Sep 26 13:57:38 2011 +0200
server: Sharing 0 is not allowed for named pipes.
---
dlls/ntdll/tests/pipe.c | 2 +- server/named_pipe.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/dlls/ntdll/tests/pipe.c b/dlls/ntdll/tests/pipe.c index 6909882..358e702 100644 --- a/dlls/ntdll/tests/pipe.c +++ b/dlls/ntdll/tests/pipe.c @@ -150,7 +150,7 @@ static void test_create_invalid(void) /* create a pipe with sharing = 0 */ res = pNtCreateNamedPipeFile(&handle, FILE_READ_ATTRIBUTES | SYNCHRONIZE, &attr, &iosb, 0, 2 /*FILE_CREATE*/, 0, 1, 0, 0, 0xFFFFFFFF, 500, 500, &timeout); - todo_wine ok(res == STATUS_INVALID_PARAMETER, "NtCreateNamedPipeFile returned %x\n", res); + ok(res == STATUS_INVALID_PARAMETER, "NtCreateNamedPipeFile returned %x\n", res); if (!res) CloseHandle(handle);
diff --git a/server/named_pipe.c b/server/named_pipe.c index 0f89f5b..66664bb 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c @@ -940,6 +940,12 @@ DECL_HANDLER(create_named_pipe) struct unicode_str name; struct directory *root = NULL;
+ if (!req->sharing || (req->sharing & ~(FILE_SHARE_READ | FILE_SHARE_WRITE))) + { + set_error( STATUS_INVALID_PARAMETER ); + return; + } + reply->handle = 0; get_req_unicode_str( &name ); if (req->rootdir && !(root = get_directory_obj( current->process, req->rootdir, 0 )))