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;