From 61aad57dc9df19c2e073779e0ab389b949960801 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 16 Oct 2010 23:38:07 +0000 Subject: [PATCH] Oops, fix my previous commit (r85583) on calculate_path() path value may be changed, so keep a copy in a new variable. --- Modules/getpath.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Modules/getpath.c b/Modules/getpath.c index 776c4645f59..20030cecc6e 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);