xfree86: Fix null pointer dereference
Hans de Goede
hdegoede at redhat.com
Fri Sep 23 12:12:18 UTC 2016
Hi,
On 01/13/2016 07:47 AM, Kyle Guinn wrote:
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93675
>
> Signed-off-by: Kyle Guinn <elyk03 at gmail.com>
Thanks for the patch, I've queued this up at:
https://cgit.freedesktop.org/~jwrdegoede/xserver
For a 1.19 bug-fix pull-req I'm preparing at.
Note I've simplified the patch to:
- if (d) {
+ if (d && d->pI2CBus) {
Instead of the nested ifs you used, still many thanks
for tracking this crashed down!
Regards,
Hans
> ---
> hw/xfree86/i2c/xf86i2c.c | 22 ++++++++++++----------
> 1 file changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/hw/xfree86/i2c/xf86i2c.c b/hw/xfree86/i2c/xf86i2c.c
> index 2a8b8df..62b647c 100644
> --- a/hw/xfree86/i2c/xf86i2c.c
> +++ b/hw/xfree86/i2c/xf86i2c.c
> @@ -615,19 +615,21 @@ void
> xf86DestroyI2CDevRec(I2CDevPtr d, Bool unalloc)
> {
> if (d) {
> - I2CDevPtr *p;
> + if (d->pI2CBus) {
> + I2CDevPtr *p;
>
> - /* Remove this from the list of active I2C devices. */
> + /* Remove this from the list of active I2C devices. */
>
> - for (p = &d->pI2CBus->FirstDev; *p != NULL; p = &(*p)->NextDev)
> - if (*p == d) {
> - *p = (*p)->NextDev;
> - break;
> - }
> + for (p = &d->pI2CBus->FirstDev; *p != NULL; p = &(*p)->NextDev)
> + if (*p == d) {
> + *p = (*p)->NextDev;
> + break;
> + }
>
> - xf86DrvMsg(d->pI2CBus->scrnIndex, X_INFO,
> - "I2C device \"%s:%s\" removed.\n",
> - d->pI2CBus->BusName, d->DevName);
> + xf86DrvMsg(d->pI2CBus->scrnIndex, X_INFO,
> + "I2C device \"%s:%s\" removed.\n",
> + d->pI2CBus->BusName, d->DevName);
> + }
>
> if (unalloc)
> free(d);
>
More information about the xorg-devel
mailing list