Browse Source

Fix invalid read from poor setlocale usage.

Alex Baines 8 years ago
parent
commit
d9e3972acb
1 changed files with 8 additions and 0 deletions
  1. 8 0
      src/video/x11/SDL_x11video.c

+ 8 - 0
src/video/x11/SDL_x11video.c

@@ -399,6 +399,10 @@ X11_VideoInit(_THIS)
         const char *env_xmods = SDL_getenv("XMODIFIERS");
         SDL_bool has_dbus_ime_support = SDL_FALSE;
 
+        if (prev_locale) {
+            prev_locale = SDL_strdup(prev_locale);
+        }
+
         if (prev_xmods) {
             prev_xmods = SDL_strdup(prev_xmods);
         }
@@ -431,6 +435,10 @@ X11_VideoInit(_THIS)
         setlocale(LC_ALL, prev_locale);
         X11_XSetLocaleModifiers(prev_xmods);
 
+        if (prev_locale) {
+            SDL_free(prev_locale);
+        }
+
         if (prev_xmods) {
             SDL_free(prev_xmods);
         }