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@herrb.eu> Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
88820f1c7b
commit
611b3b1d40
|
@ -389,8 +389,7 @@ autoConfigDevice(GDevPtr preconf_device)
|
||||||
|
|
||||||
/* for each other driver found, copy the first screen, insert it
|
/* for each other driver found, copy the first screen, insert it
|
||||||
* into the list of screens and set the driver */
|
* into the list of screens and set the driver */
|
||||||
i = 0;
|
for (i = 1; i < num_matches; i++) {
|
||||||
while (i++ < num_matches) {
|
|
||||||
if (!copyScreen(slp[0].screen, ptr, i, matches[i]))
|
if (!copyScreen(slp[0].screen, ptr, i, matches[i]))
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user