Jacek Caban : server: Don' t release client fd in do_disconnect for pipes in server-side I/O mode.
Module: wine Branch: master Commit: 197674669ec7d29f9470730129044f7263c62f13 URL: http://source.winehq.org/git/wine.git/?a=commit;h=197674669ec7d29f9470730129... Author: Jacek Caban <jacek(a)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(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 ))
participants (1)
-
Alexandre Julliard