[PATCH 4/4] wayland-server: Abort if a read from a client gives 0 length
Karsten Otto
karsten.otto at posteo.de
Sun Sep 28 11:49:05 PDT 2014
From: Philip Withnall <philip at tecnocode.co.uk>
This happens if the socket has been gracefully closed.
[KAO: It prevents a potential infinite loop when using a different
event handling mechanism than epoll, if said mechanism cannot
distinguish EOF from regular read (e.g. select).]
---
src/wayland-server.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wayland-server.c b/src/wayland-server.c
index 674aeca..85741cb 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -260,7 +260,7 @@ wl_client_connection_data(int fd, uint32_t mask, void *data)
len = 0;
if (mask & WL_EVENT_READABLE) {
len = wl_connection_read(connection);
- if (len < 0 && errno != EAGAIN) {
+ if (len == 0 || (len < 0 && errno != EAGAIN)) {
wl_client_destroy(client);
return 1;
}
--
1.9.1
More information about the wayland-devel
mailing list