summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-09-18 17:02:31 +0200
committerwm4 <wm4@nowhere>2013-09-18 19:08:51 +0200
commitb97d10a839aee875ac8157a84bb008d82f53219a (patch)
tree1a843b8422a66aed8e2272d57b8ba86eb78499e5
parentbb4ea8bb3e78b74b4eb2a621ab3a781a307c07c3 (diff)
downloadmpv-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.c4
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) {