Commit ca33fafd authored by Martin Peres's avatar Martin Peres Committed by Ben Skeggs

drm/nouveau/drm/nouveau/led: prevent a possible use-after-free

If the led class registration fails, we free drm->led but do not reset
it to NULL, which means that the suspend/resume/fini function will act
as if everything went well in init() and will likely crash the kernel.

This patch adds the missing drm->led = NULL.
Reported-by: default avatarEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Signed-off-by: default avatarMartin Peres <martin.peres@free.fr>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 443828fd
...@@ -102,6 +102,7 @@ nouveau_led_init(struct drm_device *dev) ...@@ -102,6 +102,7 @@ nouveau_led_init(struct drm_device *dev)
ret = led_classdev_register(dev->dev, &drm->led->led); ret = led_classdev_register(dev->dev, &drm->led->led);
if (ret) { if (ret) {
kfree(drm->led); kfree(drm->led);
drm->led = NULL;
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment