Fix invalid read from poor setlocale usage.
diff --git a/src/video/x11/SDL_x11video.c b/src/video/x11/SDL_x11video.c
index 724b5fb..e658ac0 100644
--- a/src/video/x11/SDL_x11video.c
+++ b/src/video/x11/SDL_x11video.c
@@ -399,6 +399,10 @@
         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 @@
         setlocale(LC_ALL, prev_locale);
         X11_XSetLocaleModifiers(prev_xmods);
 
+        if (prev_locale) {
+            SDL_free(prev_locale);
+        }
+
         if (prev_xmods) {
             SDL_free(prev_xmods);
         }