[PATCH 2/2] server: Prevent polling on shutdown fd

Zebediah Figura (she/her) zfigura at codeweavers.com
Mon Jul 5 14:54:47 CDT 2021


On 7/2/21 1:06 PM, David Koolhoven wrote:
> Make sure we're not going to poll on connectionless file descriptors
> which have received shutdown signals on their read and write ends.
> 
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51319
> Signed-off-by: David Koolhoven <david at koolhoven-home.net>
> ---
>   server/sock.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/server/sock.c b/server/sock.c
> index ce2f390ec05..ecf10441c2b 100644
> --- a/server/sock.c
> +++ b/server/sock.c
> @@ -1197,6 +1197,10 @@ static int sock_get_poll_events( struct fd *fd )
>           {
>               ev |= POLLOUT;
>           }
> +        if (sock->rd_shutdown && sock->wr_shutdown && ev == 0)
> +        {
> +            ev = -1;
> +        }
>   
>           break;
>       }
> 

This seems reasonable to me, but I feel like it deserves a comment—in 
the code, rather than in the commit message—that describes why we need 
to do this. See the comment for the SOCK_UNCONNECTED case above.



More information about the wine-devel mailing list