diff options
author | Alexey Izbyshev <izbyshev@users.noreply.github.com> | 2018-03-01 09:13:56 (GMT) |
---|---|---|
committer | Xiang Zhang <angwerzx@126.com> | 2018-03-01 09:13:56 (GMT) |
commit | 3e197c7a6740d564ad52fb7901c07d5ff49460f5 (patch) | |
tree | 07e014f8da5617fa3eedd7b218a21a101da13095 /Modules/posixmodule.c | |
parent | 982c7233846e8fbdb1e0ca23c8ae3f6362645307 (diff) | |
download | cpython-3e197c7a6740d564ad52fb7901c07d5ff49460f5.zip cpython-3e197c7a6740d564ad52fb7901c07d5ff49460f5.tar.gz cpython-3e197c7a6740d564ad52fb7901c07d5ff49460f5.tar.bz2 |
bpo-32903: Fix a memory leak in os.chdir() on Windows (GH-5801)
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r-- | Modules/posixmodule.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 4b59229..6bba8ee 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1529,15 +1529,15 @@ win32_wchdir(LPCWSTR path) return FALSE; } } - if (wcsncmp(new_path, L"\\\\", 2) == 0 || - wcsncmp(new_path, L"//", 2) == 0) - /* UNC path, nothing to do. */ - return TRUE; - env[1] = new_path[0]; - result = SetEnvironmentVariableW(env, new_path); + int is_unc_like_path = (wcsncmp(new_path, L"\\\\", 2) == 0 || + wcsncmp(new_path, L"//", 2) == 0); + if (!is_unc_like_path) { + env[1] = new_path[0]; + result = SetEnvironmentVariableW(env, new_path); + } if (new_path != path_buf) PyMem_RawFree(new_path); - return result; + return result ? TRUE : FALSE; } #endif |