bpo-30769: Fix reference leak introduced in 77703942c5 (#2416)

New error condition paths were introduced, which did not decrement
`key2` and `val2` objects.  Therefore, decrement references before
jumping to the error label.

Signed-off-by: Eric N. Vander Weele <ericvw@gmail.com>
This commit is contained in:
Eric N. Vander Weele 2017-06-26 21:35:20 -04:00 committed by Victor Stinner
parent 48b5c422ff
commit a7874c73c0
2 changed files with 5 additions and 0 deletions

View File

@ -1611,6 +1611,7 @@ Andi Vajda
Case Van Horsen
John Mark Vandenberg
Kyle VanderBeek
Eric N. Vander Weele
Andrew Vant
Atul Varma
Dmitry Vasiliev

View File

@ -4900,6 +4900,8 @@ parse_envlist(PyObject* env, Py_ssize_t *envc_ptr)
PyUnicode_FindChar(key2, '=', 1, PyUnicode_GET_LENGTH(key2), 1) != -1)
{
PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
Py_DECREF(key2);
Py_DECREF(val2);
goto error;
}
keyval = PyUnicode_FromFormat("%U=%U", key2, val2);
@ -4914,6 +4916,8 @@ parse_envlist(PyObject* env, Py_ssize_t *envc_ptr)
strchr(PyBytes_AS_STRING(key2) + 1, '=') != NULL)
{
PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
Py_DECREF(key2);
Py_DECREF(val2);
goto error;
}
keyval = PyBytes_FromFormat("%s=%s", PyBytes_AS_STRING(key2),