xkb: Extra sanity checks to prevent dev->key == NULL dereferencing.
This commit is contained in:
parent
a425abf0ea
commit
95fc59a199
|
@ -110,7 +110,7 @@ Time time;
|
||||||
register CARD16 changed,bState;
|
register CARD16 changed,bState;
|
||||||
|
|
||||||
interest = kbd->xkb_interest;
|
interest = kbd->xkb_interest;
|
||||||
if (!interest)
|
if (!interest || !kbd->key || !kbd->key->xkbInfo)
|
||||||
return;
|
return;
|
||||||
xkbi = kbd->key->xkbInfo;
|
xkbi = kbd->key->xkbInfo;
|
||||||
state= &xkbi->state;
|
state= &xkbi->state;
|
||||||
|
@ -169,6 +169,9 @@ XkbSrvInfoPtr xkbi;
|
||||||
unsigned time = 0,initialized;
|
unsigned time = 0,initialized;
|
||||||
CARD16 changed;
|
CARD16 changed;
|
||||||
|
|
||||||
|
if (!kbd->key || !kbd->key->xkbInfo)
|
||||||
|
return;
|
||||||
|
|
||||||
xkbi = kbd->key->xkbInfo;
|
xkbi = kbd->key->xkbInfo;
|
||||||
initialized= 0;
|
initialized= 0;
|
||||||
|
|
||||||
|
@ -292,7 +295,7 @@ XkbInterestPtr interest;
|
||||||
Time time = 0;
|
Time time = 0;
|
||||||
|
|
||||||
interest = kbd->xkb_interest;
|
interest = kbd->xkb_interest;
|
||||||
if (!interest)
|
if (!interest || !kbd->key || !kbd->key->xkbInfo)
|
||||||
return;
|
return;
|
||||||
xkbi = kbd->key->xkbInfo;
|
xkbi = kbd->key->xkbInfo;
|
||||||
|
|
||||||
|
@ -402,6 +405,9 @@ CARD16 pitch,duration;
|
||||||
Time time = 0;
|
Time time = 0;
|
||||||
XID winID = 0;
|
XID winID = 0;
|
||||||
|
|
||||||
|
if (!kbd->key || !kbd->key->xkbInfo)
|
||||||
|
return;
|
||||||
|
|
||||||
xkbi = kbd->key->xkbInfo;
|
xkbi = kbd->key->xkbInfo;
|
||||||
|
|
||||||
if ((force||(xkbi->desc->ctrls->enabled_ctrls&XkbAudibleBellMask))&&
|
if ((force||(xkbi->desc->ctrls->enabled_ctrls&XkbAudibleBellMask))&&
|
||||||
|
@ -617,11 +623,12 @@ XkbSrvInfoPtr xkbi;
|
||||||
XkbInterestPtr interest;
|
XkbInterestPtr interest;
|
||||||
Time time = 0;
|
Time time = 0;
|
||||||
|
|
||||||
xkbi = kbd->key->xkbInfo;
|
|
||||||
interest = kbd->xkb_interest;
|
interest = kbd->xkb_interest;
|
||||||
if (!interest)
|
if (!interest || !kbd->key || !kbd->key->xkbInfo)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
xkbi = kbd->key->xkbInfo;
|
||||||
|
|
||||||
initialized = 0;
|
initialized = 0;
|
||||||
pEv->mods= xkbi->state.mods;
|
pEv->mods= xkbi->state.mods;
|
||||||
pEv->group= xkbi->state.group;
|
pEv->group= xkbi->state.group;
|
||||||
|
@ -1016,6 +1023,10 @@ unsigned long autoCtrls,autoValues;
|
||||||
ClientPtr client = NULL;
|
ClientPtr client = NULL;
|
||||||
|
|
||||||
found= False;
|
found= False;
|
||||||
|
|
||||||
|
if (!dev->key || !dev->key->xkbInfo)
|
||||||
|
return found;
|
||||||
|
|
||||||
autoCtrls= autoValues= 0;
|
autoCtrls= autoValues= 0;
|
||||||
if ( dev->xkb_interest ) {
|
if ( dev->xkb_interest ) {
|
||||||
interest = dev->xkb_interest;
|
interest = dev->xkb_interest;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user