]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-37931: Fix crash on OSX re-initializing os.environ (GH-15428)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 6 Dec 2019 19:32:33 +0000 (11:32 -0800)
committerGitHub <noreply@github.com>
Fri, 6 Dec 2019 19:32:33 +0000 (11:32 -0800)
commit836cf31a3cf468ed9598a220b8e194b366287bfe
treed8786067ffb5bc34e0af80564e0912f961547ba8
parentc9f480d2ccda9de46584cabe086f0acfa45f2faf
bpo-37931: Fix crash on OSX re-initializing os.environ (GH-15428)

On most platforms, the `environ` symbol is accessible everywhere.

In a dylib on OSX, it's not easily accessible, you need to find it with
_NSGetEnviron.

The code was caching the *value* of environ. But a setenv() can change the value,
leaving garbage at the old value. Fix: don't cache the value of environ, just
read it every time.
(cherry picked from commit 723f71abf7ab0a7be394f9f7b2daa9ecdf6fb1eb)

Co-authored-by: Benoit Hudson <benoit@imgspc.com>
Misc/ACKS
Misc/NEWS.d/next/macOS/2019-08-23-12-14-34.bpo-37931.goYgQj.rst [new file with mode: 0644]
Modules/posixmodule.c