From 611490a176d9bfd136f4340f7c31e0e0f0beea4e Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 13 Feb 2014 16:18:43 +0000 Subject: [PATCH] sna: Check for access to backlight interface Before attaching properties to any connector, check that we can indeed control the backlight through the sysfs interface by doing an access check. If the xserver is started without root privileges, we cannot write through /sys/class/backlight and so should take care not to advertise that we can. Reported-by: Hans de Geode Signed-off-by: Chris Wilson --- src/sna/sna_display.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index 85003bf3..54e45ffd 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -447,6 +447,14 @@ sna_output_backlight_get_max(xf86OutputPtr output) char path[1024], val[BACKLIGHT_VALUE_LEN]; int fd, max = 0; + /* We are used as an initial check to see if we can + * control the backlight, so first test if we can set values. + */ + sprintf(path, "%s/%s/brightness", + BACKLIGHT_CLASS, sna_output->backlight_iface); + if (access(path, R_OK | W_OK)) + return -1; + sprintf(path, "%s/%s/max_brightness", BACKLIGHT_CLASS, sna_output->backlight_iface); fd = open(path, O_RDONLY);