Jacek Caban : server: Don' t release client fd in do_disconnect for pipes in server-side I/O mode.
Alexandre Julliard
julliard at winehq.org
Fri Mar 24 16:24:25 CDT 2017
Module: wine
Branch: master
Commit: 197674669ec7d29f9470730129044f7263c62f13
URL: http://source.winehq.org/git/wine.git/?a=commit;h=197674669ec7d29f9470730129044f7263c62f13
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Mar 23 15:42:13 2017 +0100
server: Don't release client fd in do_disconnect for pipes in server-side I/O mode.
If server closes without disconnect, it should be still possible to read
remaining buffered data.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
server/named_pipe.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 1e6bb4e..0dfef01 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -452,8 +452,11 @@ static void do_disconnect( struct pipe_server *server )
{
assert( server->client->server == server );
assert( server->client->pipe_end.fd );
- release_object( server->client->pipe_end.fd );
- server->client->pipe_end.fd = NULL;
+ if (!use_server_io( &server->pipe_end ))
+ {
+ release_object( server->client->pipe_end.fd );
+ server->client->pipe_end.fd = NULL;
+ }
}
assert( server->pipe_end.fd );
if (!use_server_io( &server->pipe_end ))
More information about the wine-cvs
mailing list