[PATCH 10/15] xkb: Fix possible NULL pointer dereference
Peter Hutterer
peter.hutterer at who-t.net
Tue Jul 27 16:15:37 PDT 2010
On Tue, Jul 27, 2010 at 03:09:51PM +0300, Pauli Nieminen wrote:
> If search for device failed sli is NULL. In that case we have to protect
> dereference to prevent server crash.
>
> Signed-off-by: Pauli Nieminen <ext-pauli.nieminen at nokia.com>
> ---
> xkb/ddxLoad.c | 6 +++++-
> xkb/xkbLEDs.c | 10 ++++++----
> 2 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
> index 5e6ab87..2fdf71e 100644
> --- a/xkb/ddxLoad.c
> +++ b/xkb/ddxLoad.c
> @@ -342,7 +342,11 @@ char fileName[PATH_MAX];
> unsigned missing;
>
> *xkbRtrn = NULL;
> - if ((keybd==NULL)||(keybd->key==NULL)||(keybd->key->xkbInfo==NULL))
> + if (!keybd) {
> + LogMessage(X_ERROR, "XKB: %s no device given as parameter.\n", __func__);
> + return 0;
> + }
> + if ((keybd->key==NULL)||(keybd->key->xkbInfo==NULL))
> xkb= NULL;
> else xkb= keybd->key->xkbInfo->desc;
> if ((names->keycodes==NULL)&&(names->types==NULL)&&
what was the error message that prompted this hunk? Cursory inspection of
the code seems like a keybd of NULL is valid.
> diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c
> index f617537..1682671 100644
> --- a/xkb/xkbLEDs.c
> +++ b/xkb/xkbLEDs.c
> @@ -714,10 +714,12 @@ XkbSrvLedInfoPtr sli;
> }
> }
> }
> - if ((sli->names==NULL)&&(needed_parts&XkbXI_IndicatorNamesMask))
> - sli->names= calloc(XkbNumIndicators, sizeof(Atom));
> - if ((sli->maps==NULL)&&(needed_parts&XkbXI_IndicatorMapsMask))
> - sli->maps= calloc(XkbNumIndicators, sizeof(XkbIndicatorMapRec));
> + if (sli) {
> + if ((sli->names==NULL)&&(needed_parts&XkbXI_IndicatorNamesMask))
> + sli->names= calloc(XkbNumIndicators, sizeof(Atom));
> + if ((sli->maps==NULL)&&(needed_parts&XkbXI_IndicatorMapsMask))
> + sli->maps= calloc(XkbNumIndicators, sizeof(XkbIndicatorMapRec));
> + }
> return sli;
> }
>
> --
> 1.6.3.3
these seem to be two unrelated hunks, should be two separate patches.
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net> for the second hunk
though with the commit message above.
Cheers,
Peter
More information about the xorg-devel
mailing list