On Mon, Mar 19, 2018 at 16:04:43 +0000, Emil Velikov wrote: > From: Emil Velikov <emil.veli...@collabora.com> > > As per the protocol, the server should not return version greater than > the one supported by the client. > > Add a spec quote and tweak the numbers accordingly. > > Fixes: 5c5c1b77982 ("present: Add Present extension") > Cc: Thierry Reding <tred...@nvidia.com> > Cc: Daniel Stone <dani...@collabora.com> > Cc: Keith Packard <kei...@keithp.com> > Signed-off-by: Emil Velikov <emil.veli...@collabora.com> > --- > Analogous to the DRI3 patch here > https://patchwork.freedesktop.org/patch/210343/ > --- > present/present_request.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/present/present_request.c b/present/present_request.c > index c6afe5fa7..f52efa52b 100644 > --- a/present/present_request.c > +++ b/present/present_request.c > @@ -41,7 +41,19 @@ proc_present_query_version(ClientPtr client) > }; > > REQUEST_SIZE_MATCH(xPresentQueryVersionReq); > - (void) stuff; > + /* From presentproto: > + * > + * The client sends the highest supported version to the server > + * and the server sends the highest version it supports, but no > + * higher than the requested version. > + */ > + > + if (rep.majorVersion > stuff->majorVersion || > + rep.minorVersion > stuff->minorVersion) { > + rep.majorVersion = stuff->majorVersion; > + rep.minorVersion = stuff->minorVersion; > + }
Doesn't this break when e.g. client supports 2.2 and server supports 1.4, where we'll return 2.2 instead of 1.4? i.e. it seems to me this should be if (rep.majorVersion > stuff->majorVersion || (rep.majorVersion == stuff->majorVersion && rep.minorVersion > stuff->minorVersion)) { ... } Cheers, Julien > + > if (client->swapped) { > swaps(&rep.sequenceNumber); > swapl(&rep.length); > -- > 2.16.0 > > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: https://lists.x.org/mailman/listinfo/xorg-devel _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel