Commit b3a989d0dfeae6944f71459d31abf5e5cd89dc7e

Sebastian Krzyszkowiak 2021-08-10T13:08:27

video: Fix false positives in driver name comparison Without this change, driver names don't get matched correctly; for example "x" can get matched with "x11" since it only checks whether the string matches up to the length of the requested driver name.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index ba15090..057dce0 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -505,7 +505,8 @@ SDL_VideoInit(const char *driver_name)
                                                                      : SDL_strlen(driver_attempt);
 
             for (i = 0; bootstrap[i]; ++i) {
-                if (SDL_strncasecmp(bootstrap[i]->name, driver_attempt, driver_attempt_len) == 0) {
+                if ((driver_attempt_len == SDL_strlen(bootstrap[i]->name)) &&
+                    (SDL_strncasecmp(bootstrap[i]->name, driver_attempt, driver_attempt_len) == 0)) {
                     video = bootstrap[i]->create(index);
                     break;
                 }