From: Victor Stinner Date: Sat, 16 Oct 2010 23:38:07 +0000 (+0000) Subject: Oops, fix my previous commit (r85583) on calculate_path() X-Git-Tag: v3.2a4~517 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=61aad57dc9df19c2e073779e0ab389b949960801;p=python Oops, fix my previous commit (r85583) on calculate_path() path value may be changed, so keep a copy in a new variable. --- diff --git a/Modules/getpath.c b/Modules/getpath.c index 776c4645f5..20030cecc6 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -407,6 +407,7 @@ calculate_path(void) wchar_t rtpypath[MAXPATHLEN+1]; wchar_t *home = Py_GetPythonHome(); char *_path = getenv("PATH"); + wchar_t *path_buffer = NULL; wchar_t *path = NULL; wchar_t *prog = Py_GetProgramName(); wchar_t argv0_path[MAXPATHLEN+1]; @@ -428,8 +429,10 @@ calculate_path(void) char execpath[MAXPATHLEN+1]; #endif - if (_path) - path = _Py_char2wchar(_path, NULL); + if (_path) { + path_buffer = _Py_char2wchar(_path, NULL); + path = path_buffer; + } /* If there is no slash in the argv0 path, then we have to * assume python is on the user's $PATH, since there's no @@ -484,8 +487,8 @@ calculate_path(void) } else progpath[0] = '\0'; - if (path != NULL) - PyMem_Free(path); + if (path_buffer != NULL) + PyMem_Free(path_buffer); if (progpath[0] != SEP && progpath[0] != '\0') absolutize(progpath); wcsncpy(argv0_path, progpath, MAXPATHLEN);