• Olivier Fourdan's avatar
    XKB: fix XkbGetKeyboardByName with Xming server · a3759f32
    Olivier Fourdan authored
    XkbGetKeyboardByName relies on flags to read the data from the server.
    
    If the X server sends us the wrong flags or if a subreply is smaller
    than it should be, XkbGetKeyboardByName will not read all the available
    data and leave data in the buffer, which will cause the next _XReply()
    to fail with:
    
    [xcb] Extra reply data still left in queue
    [xcb] This is most likely caused by a broken X extension library
    [xcb] Aborting, sorry about that.
    xcb_io.c:576: _XReply: Assertion `!xcb_xlib_extra_reply_data_left' failed.
    Aborted
    
    Check if there is some extra data left at the end of
    XkbGetKeyboardByName() and discard that data if any is found.
    
    Many thanks to Peter Hutterer <peter.hutterer@who-t.net> for finding the
    root cause of the issue and Adam Jackson <ajax@redhat.com> for helping
    with the analysis!
    Signed-off-by: 's avatarOlivier Fourdan <ofourdan@redhat.com>
    Reviewed-by: 's avatarDaniel Stone <daniels@collabora.com>
    Reviewed-by: 's avatarPeter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: 's avatarPeter Hutterer <peter.hutterer@who-t.net>
    Backported-to-NX-by: 's avatarUlrich Sibiller <uli42@gmx.de>
    a3759f32
Name
Last commit
Last update
bin Loading commit data...
debian Loading commit data...
doc Loading commit data...
etc Loading commit data...
nx-X11 Loading commit data...
nxcomp Loading commit data...
nxcompext Loading commit data...
nxcompshad Loading commit data...
nxproxy Loading commit data...
testscripts Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
LICENSE Loading commit data...
LICENSE.nxcomp Loading commit data...
Makefile Loading commit data...
README.NX-development Loading commit data...
README.md Loading commit data...
VERSION Loading commit data...
fix-patch-whitespace Loading commit data...
make-changelog.sh Loading commit data...
nx-libs.spec Loading commit data...
replace.sh Loading commit data...
roll-tarballs.sh Loading commit data...
version.sh Loading commit data...