From af41e3423d3296b022d673371375fd3571745e9c Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 16 Nov 2020 15:36:51 +0100 Subject: [PATCH] pulse-server: handle recv of 0 bytes 0 bytes from recv means EOS and we can disconnect the client instead of looping forever. --- src/modules/module-protocol-pulse/pulse-server.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index 421e8e544..67f96a769 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -4656,7 +4656,11 @@ static int do_read(struct client *client) size = client->message->length - idx; } while (true) { - if ((r = recv(client->source->fd, data, size, MSG_DONTWAIT)) < 0) { + r = recv(client->source->fd, data, size, MSG_DONTWAIT); + if (r == 0 && size != 0) { + res = -EPIPE; + goto exit; + } else if (r < 0) { if (errno == EINTR) continue; res = -errno;