Aaron Plattner <aplatt...@nvidia.com> writes:

> Commit 112d0d7d01b9 lost the initialization of the variable i in the loop to 
> add
> secondary driver matches to the list of configs:
>
>  @@ -398,8 +412,8 @@ autoConfigDevice(GDevPtr preconf_device)
>
>               /* for each other driver found, copy the first screen, insert it
>                * into the list of screens and set the driver */
>  -            for (i = 1; i < num_matches; i++) {
>  -                if (!copyScreen(slp[0].screen, ptr, i, matches[i]))
>  +            while (i++ < md.nmatches) {
>  +                if (!copyScreen(slp[0].screen, ptr, i, md.matches[i]))
>                       return NULL;
>               }
>
> This caused only the first match to be added, because an earlier loop sets i =
> md.nmatches.
>
> Fix this by reverting the while loop back to a for loop.
>
> Reported-by: Michel Dänzer <mic...@daenzer.net>
> Reported-by: Peter Hutterer <peter.hutte...@who-t.net>
> Reported-by: Eric Anholt <e...@anholt.net>
> Cc: Adam Jackson <a...@redhat.com>
> Fixes: 112d0d7d01b9 ("xfree86: Improved autoconfig drivers matching")
> Signed-off-by: Aaron Plattner <aplatt...@nvidia.com>
> ---
> Resend: forgot to Cc the list.

This is a pretty clear unintended behavior change.

Tested-by: Eric Anholt <e...@anholt.net>

Since we collided on me pushing the revert, shall I squash this into a
re-cherry-pick of the change as a v2?

Attachment: signature.asc
Description: PGP signature

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to