xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Mon Aug 15 16:44:58 UTC 2016


 hw/xfree86/common/xf86AutoConfig.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

New commits:
commit 611b3b1d40f58035582480a3d7cfa77cb288cbc6
Author: Matthieu Herrb <matthieu at herrb.eu>
Date:   Sun Jul 31 12:13:03 2016 +0200

    Autoconfig: Fix the loop adding dectected drivers to the list of screens
    
    This loop was written in a buggy style, causing a NULL driver ptr to be
    passed to copyScreen(). copyScreen() only uses that to generate an
    identifier string, so this is mostly harmless on systems that accept
    NULL for asprintf() "%s" format. (the generated identifiers are off
    by one wrt the driver names and the last one contains NULL.
    
    For systems that don't accept NULL for '%s' this would cause a
    segmentation fault when this code is used (no xorg.conf, but partial
    config in xorg.conf.d for instance).
    
    Signed-off-by: Matthieu Herrb <matthieu at herrb.eu>
    Reviewed-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
index e6ab900..9402651 100644
--- a/hw/xfree86/common/xf86AutoConfig.c
+++ b/hw/xfree86/common/xf86AutoConfig.c
@@ -389,8 +389,7 @@ autoConfigDevice(GDevPtr preconf_device)
 
             /* for each other driver found, copy the first screen, insert it
              * into the list of screens and set the driver */
-            i = 0;
-            while (i++ < num_matches) {
+            for (i = 1; i < num_matches; i++) {
                 if (!copyScreen(slp[0].screen, ptr, i, matches[i]))
                     return NULL;
             }


More information about the xorg-commit mailing list