On Thu, Apr 21, 2016 at 12:24 PM, Dirk Behme <dirk.be...@de.bosch.com> wrote:
> In case thermal_zone_xxx_register() returns an error, priv->zone
> isn't NULL any more, but contains the error code.
>
> This is passed to thermal_zone_device_unregister(), then. This checks
> for priv->zone being NULL, but the error code is != NULL. So it works
> with the error code as a pointer. Crashing immediately.
>
> To fix this, reset priv->zone to NULL before entering
> rcar_gen3_thermal_remove().

Alternatively, you could prevent a non-valid zone pointer from ever
ending up in priv->zone by assigning the zone to a temporary variable,
and only storing that in priv->zone after the error check.

> Signed-off-by: Dirk Behme <dirk.be...@de.bosch.com>

Regardless of the above
Reviewed-by: Geert Uytterhoeven <geert+rene...@glider.be>

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

Reply via email to