vfb: add a name and type to the pointer and keyboard
Fixes a crash in XIQueryDevice which calls strlen on a NULL pointer. #0 strlen () at ../sysdeps/x86_64/strlen.S:31 #1 0x00000000004c16ed in SizeDeviceInfo (dev=0x969bd0) at ../../Xi/xiquerydevice.c:204 #2 0x00000000004c1a01 in ProcXIQueryDevice (client=0xa57510) at ../../Xi/xiquerydevice.c:98 Debian bug#575905 <http://bugs.debian.org/575905> Reported-by: "Bernhard R. Link" <brlink@debian.org> Signed-off-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
2f29b163bb
commit
0e7703f9b1
|
@ -43,6 +43,7 @@ from The Open Group.
|
||||||
#include <X11/keysym.h>
|
#include <X11/keysym.h>
|
||||||
#include "xserver-properties.h"
|
#include "xserver-properties.h"
|
||||||
#include "exevents.h"
|
#include "exevents.h"
|
||||||
|
#include "extinit.h"
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
LegalModifier(unsigned int key, DeviceIntPtr pDev)
|
LegalModifier(unsigned int key, DeviceIntPtr pDev)
|
||||||
|
@ -136,10 +137,15 @@ void
|
||||||
InitInput(int argc, char *argv[])
|
InitInput(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
DeviceIntPtr p, k;
|
DeviceIntPtr p, k;
|
||||||
|
Atom xiclass;
|
||||||
p = AddInputDevice(serverClient, vfbMouseProc, TRUE);
|
p = AddInputDevice(serverClient, vfbMouseProc, TRUE);
|
||||||
k = AddInputDevice(serverClient, vfbKeybdProc, TRUE);
|
k = AddInputDevice(serverClient, vfbKeybdProc, TRUE);
|
||||||
RegisterPointerDevice(p);
|
RegisterPointerDevice(p);
|
||||||
|
xiclass = MakeAtom(XI_MOUSE, sizeof(XI_MOUSE) - 1, TRUE);
|
||||||
|
AssignTypeAndName(p, xiclass, "Xvfb mouse");
|
||||||
RegisterKeyboardDevice(k);
|
RegisterKeyboardDevice(k);
|
||||||
|
xiclass = MakeAtom(XI_KEYBOARD, sizeof(XI_KEYBOARD) - 1, TRUE);
|
||||||
|
AssignTypeAndName(k, xiclass, "Xvfb keyboard");
|
||||||
(void)mieqInit();
|
(void)mieqInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue