diff options
author | wm4 <wm4@nowhere> | 2013-09-18 17:02:31 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-09-18 19:08:51 +0200 |
commit | b97d10a839aee875ac8157a84bb008d82f53219a (patch) | |
tree | 1a843b8422a66aed8e2272d57b8ba86eb78499e5 | |
parent | bb4ea8bb3e78b74b4eb2a621ab3a781a307c07c3 (diff) | |
download | mpv-b97d10a839aee875ac8157a84bb008d82f53219a.tar.bz2 mpv-b97d10a839aee875ac8157a84bb008d82f53219a.tar.xz |
path: fix undefined behavior
The homepath variable was static, and its value was set to a stack
buffer. This means a second invocation of the function would trigger
undefined behavior. Moreover the stack buffer always went out of scope
before homepath was used.
-rw-r--r-- | mpvcore/path.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mpvcore/path.c b/mpvcore/path.c index ae12f20e68..f0c8525b21 100644 --- a/mpvcore/path.c +++ b/mpvcore/path.c @@ -78,12 +78,12 @@ char *mp_find_config_file(const char *filename) char *mp_find_user_config_file(const char *filename) { char *homedir = NULL, *buff = NULL; - static char *homepath = NULL; + char *homepath = NULL; #ifdef __MINGW32__ char *config_dir = "mpv"; + char buf[MAX_PATH]; if (homepath == NULL) { - char buf[MAX_PATH]; if (SHGetFolderPathA(NULL, CSIDL_LOCAL_APPDATA|CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_CURRENT, buf) == S_OK) { |