aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDipen Somani <dipen.somani@samsung.com>2018-04-19 09:01:56 -0500
committerDerek Foreman <derekf@osg.samsung.com>2018-04-20 13:05:09 -0500
commit685f9a09097a7c598dd737eb83ea419f6a21b260 (patch)
tree40020967498a18349a7d2497920012550c9fd79b /src
parentconfigure.ac: Reopen master for regular development (diff)
downloadwayland-685f9a09097a7c598dd737eb83ea419f6a21b260.tar
wayland-685f9a09097a7c598dd737eb83ea419f6a21b260.tar.gz
wayland-685f9a09097a7c598dd737eb83ea419f6a21b260.tar.bz2
wayland-685f9a09097a7c598dd737eb83ea419f6a21b260.tar.lz
wayland-685f9a09097a7c598dd737eb83ea419f6a21b260.tar.xz
wayland-685f9a09097a7c598dd737eb83ea419f6a21b260.tar.zst
wayland-685f9a09097a7c598dd737eb83ea419f6a21b260.zip
wayland-server: Properly handle EAGAIN from wl_connection_read()
commit 3cddb3c692acd3536a7cc8542a29f0cc3c0ac3d6 casted len to an unsigned value to compare to sizeof results. However, wl_connection_read() can fail, setting errno to EAGAIN and returning a value of -1. When cast to an unsigned type this leads to a loop condition of true when it should be false. Signed-off-by: Dipen Somani <dipen.somani@samsung.com> Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Diffstat (limited to 'src')
-rw-r--r--src/wayland-server.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/wayland-server.c b/src/wayland-server.c
index eb1e500..eab2ee4 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -353,7 +353,7 @@ wl_client_connection_data(int fd, uint32_t mask, void *data)
}
}
- while ((size_t) len >= sizeof p) {
+ while (len >= 0 && (size_t) len >= sizeof p) {
wl_connection_copy(connection, p, sizeof p);
opcode = p[1] & 0xffff;
size = p[1] >> 16;