Browse Source

audio: Fix false positives in driver name comparison

Without this change, driver names don't get matched correctly;
for example "a" can get matched with "alsa" since it only checks
whether the string matches up to the length of the requested
driver name.
Sebastian Krzyszkowiak 3 years ago
parent
commit
25f9ed87ff
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/audio/SDL_audio.c

+ 2 - 1
src/audio/SDL_audio.c

@@ -980,7 +980,8 @@ SDL_AudioInit(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)) {
                     tried_to_init = 1;
                     SDL_zero(current_audio);
                     current_audio.name = bootstrap[i]->name;