Pārlūkot izejas kodu

drm: Fix memory leak at error path of drm_read()

Note that the read manpages explicitly states that the read position
is undefined on error. Since EFAULT is just a userspace bug we are
therefore fine with just dropping the event on the floor.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
[danvet: Add note that just dropping the event is ok.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Takashi Iwai 10 gadi atpakaļ
vecāks
revīzija
a0a0bde32a
1 mainītis faili ar 1 papildinājumiem un 0 dzēšanām
  1. 1 0
      drivers/gpu/drm/drm_fops.c

+ 1 - 0
drivers/gpu/drm/drm_fops.c

@@ -527,6 +527,7 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
 		if (copy_to_user(buffer + total,
 		if (copy_to_user(buffer + total,
 				 e->event, e->event->length)) {
 				 e->event, e->event->length)) {
 			total = -EFAULT;
 			total = -EFAULT;
+			e->destroy(e);
 			break;
 			break;
 		}
 		}