On 2018-04-19 09:01 AM, Derek Foreman wrote: > From: Dipen Somani <[email protected]> > > 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 <[email protected]> > Signed-off-by: Derek Foreman <[email protected]>
I forgot to add: Reviewed-by: Derek Foreman <[email protected]> > --- > 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 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; > _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
