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

Chris Wilson ickle at kemper.freedesktop.org
Mon Oct 24 21:25:04 UTC 2016


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

New commits:
commit 714052fb32a3c521efb295f2c400a673d515fb77
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Oct 24 22:22:44 2016 +0100

    sna: Keep the backlight iface name on the heap
    
    When finding the per-connector backlight interface, we have to take a
    copy of the interface name for later use, as in this case it is not
    constant.
    
    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 28a2ee8..66c3147 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1008,7 +1008,7 @@ static const char * const sysfs_connector_types[] = {
 	/* DRM_MODE_CONNECTOR_DPI */		"DPI"
 };
 
-static char *has_connector_backlight(xf86OutputPtr output, char *buf)
+static char *has_connector_backlight(xf86OutputPtr output)
 {
 	struct sna_output *sna_output = output->driver_private;
 	struct sna *sna = to_sna(output->scrn);
@@ -1016,7 +1016,7 @@ static char *has_connector_backlight(xf86OutputPtr output, char *buf)
 	DIR *dir;
 	struct dirent *de;
 	int minor, len;
-	char *ret = NULL;
+	char *str = NULL;
 
 	if (sna_output->connector_type >= ARRAY_SIZE(sysfs_connector_types))
 		return NULL;
@@ -1052,14 +1052,13 @@ static char *has_connector_backlight(xf86OutputPtr output, char *buf)
 		     __FUNCTION__, de->d_name));
 
 		if (backlight_exists(de->d_name)) {
-			snprintf(buf, 128, "%s", de->d_name);
-			ret = buf;
+			str = strdup(de->d_name); /* leak! */
 			break;
 		}
 	}
 
 	closedir(dir);
-	return ret;
+	return str;
 }
 
 static void
@@ -1067,7 +1066,6 @@ sna_output_backlight_init(xf86OutputPtr output)
 {
 	struct sna_output *sna_output = output->driver_private;
 	struct pci_device *pci;
-	char buf[128];
 	MessageType from;
 	char *best_iface;
 
@@ -1082,7 +1080,7 @@ sna_output_backlight_init(xf86OutputPtr output)
 			goto done;
 	}
 
-	best_iface = has_connector_backlight(output, buf);
+	best_iface = has_connector_backlight(output);
 	if (best_iface)
 		goto done;
 


More information about the xorg-commit mailing list