Browse Source

Fix #2062 Be more diligent about validating trailing "/" existence in HOME and XDG_DATA_HOME env vars

Edward Rudd 11 years ago
parent
commit
e5b65e4e03
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/filesystem/unix/SDL_sysfilesystem.c

+ 9 - 1
src/filesystem/unix/SDL_sysfilesystem.c

@@ -173,7 +173,15 @@ SDL_GetPrefPath(const char *org, const char *app)
             SDL_SetError("neither XDG_DATA_HOME nor HOME environment is set");
             return NULL;
         }
-        append = ".local/share/";
+        if (envr[SDL_strlen(envr) - 1] == '/') {
+            append = ".local/share/";
+        } else {
+            append = "/.local/share/";
+        }
+    } else {
+        if (envr[SDL_strlen(envr) - 1] == '/') {
+            append = "";
+        }
     } /* if */
 
     len = SDL_strlen(envr) + SDL_strlen(append) + SDL_strlen(app) + 2;