Bug 1002810 - BadLength for an XI2.0 client on a XI2.2 server
Summary: BadLength for an XI2.0 client on a XI2.2 server
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: xorg-x11-server
Version: 7.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Peter Hutterer
QA Contact: Desktop QE
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-08-30 04:36 UTC by Peter Hutterer
Modified: 2014-03-05 05:06 UTC (History)
0 users

Fixed In Version: xorg-x11-server-1.14.2-10.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-03-05 05:06:21 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Peter Hutterer 2013-08-30 04:36:12 UTC
Description of problem:
This is technically a bug in libXi but needs to be fixed in the server to be backwards compatible with released libXi versions.

If a client requests XIQueryVersion(2.0) against a XI2.2 server and then calls XIAllowEvents(), libXi picks the request length based on the version reported by the server, not the client. This request length is different to what the server expects from a XI 2.0 client and it responds with a BadLength error.

Version-Release number of selected component (if applicable):
xorg-x11-server-1.14.2-9.el7

How reproducible:

  Display *dpy = XOpenDisplay(NULL);
  int major = 2, minor = 0;
  XIQueryVersion(dpy, &major, &minor);

  assert(minor >= 2); /* need a 2.2 server */

  XIAllowEvents(dpy, 2, XIAsyncDevice, CurrentTime);
  XSync(dpy, False);


The code will trigger a BadLength error.


Additional info:
https://bugs.freedesktop.org/show_bug.cgi?id=68554

Comment 2 Peter Hutterer 2013-08-30 07:41:33 UTC
MODIFIED

xorg-x11-server-1.14.2-10.el7 is available in brew


Note You need to log in before you can comment on or make changes to this bug.