Bug 1002810

Summary: BadLength for an XI2.0 client on a XI2.2 server
Product: Red Hat Enterprise Linux 7 Reporter: Peter Hutterer <peter.hutterer>
Component: xorg-x11-serverAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED CURRENTRELEASE QA Contact: Desktop QE <desktop-qa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0   
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: xorg-x11-server-1.14.2-10.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-03-05 05:06:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

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