xf86-video-intel: src/sna/sna_display.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Jun 25 23:00:32 PDT 2014


 src/sna/sna_display.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 12a349974b63a47ad55384abe0d7a839af48f31a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Jun 26 06:59:07 2014 +0100

    sna: Make output destroy more defensive
    
    We may never create the properties as it may be ignored or the
    allocation may fail, so we need to be careful when freeing we do not
    stumble over invalid pointers.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=80355#c28
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 799d7d4..166203a 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -2658,10 +2658,16 @@ sna_output_destroy(xf86OutputPtr output)
 
 	free(sna_output->edid_raw);
 	for (i = 0; i < sna_output->num_props; i++) {
-		if (output->randr_output)
-			RRDeleteOutputProperty(output->randr_output, sna_output->props[i].atoms[0]);
+		if (sna_output->props[i].kprop == NULL)
+			continue;
+
+		if (sna_output->props[i].atoms) {
+			if (output->randr_output)
+				RRDeleteOutputProperty(output->randr_output, sna_output->props[i].atoms[0]);
+			free(sna_output->props[i].atoms);
+		}
+
 		drmModeFreeProperty(sna_output->props[i].kprop);
-		free(sna_output->props[i].atoms);
 	}
 	free(sna_output->props);
 	free(sna_output->prop_ids);


More information about the xorg-commit mailing list