Browse Source

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: Emmanuel Pescosta <emmanuelpescosta099@gmail.com>
Signed-off-by: Martin Peres <martin.peres@free.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Martin Peres 8 years ago
parent
commit
ca33fafdc9
1 changed files with 1 additions and 0 deletions
  1. 1 0
      drivers/gpu/drm/nouveau/nouveau_led.c

+ 1 - 0
drivers/gpu/drm/nouveau/nouveau_led.c

@@ -102,6 +102,7 @@ nouveau_led_init(struct drm_device *dev)
 	ret = led_classdev_register(dev->dev, &drm->led->led);
 	if (ret) {
 		kfree(drm->led);
+		drm->led = NULL;
 		return ret;
 	}