summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorOren Milman <orenmn@gmail.com>2017-09-14 19:30:28 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2017-09-14 19:30:27 (GMT)
commit0b3a87ef54a0112b74e8a1d8c6f87d10db4239ab (patch)
tree626fd137e6154d665e7b0fe8e17360ad78d2ef84 /Modules
parentf350a268a7071ce7d7a5bb86a9b1229782d4963b (diff)
downloadcpython-0b3a87ef54a0112b74e8a1d8c6f87d10db4239ab.zip
cpython-0b3a87ef54a0112b74e8a1d8c6f87d10db4239ab.tar.gz
cpython-0b3a87ef54a0112b74e8a1d8c6f87d10db4239ab.tar.bz2
bpo-31471: Fix assertion failure in subprocess.Popen() on Windows, in case env has a bad keys() method. (#3580)
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_winapi.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Modules/_winapi.c b/Modules/_winapi.c
index a81ccaf..00a26d51 100644
--- a/Modules/_winapi.c
+++ b/Modules/_winapi.c
@@ -723,9 +723,13 @@ getenvironment(PyObject* environment)
}
keys = PyMapping_Keys(environment);
+ if (!keys) {
+ return NULL;
+ }
values = PyMapping_Values(environment);
- if (!keys || !values)
+ if (!values) {
goto error;
+ }
envsize = PySequence_Fast_GET_SIZE(keys);
if (PySequence_Fast_GET_SIZE(values) != envsize) {