Fix two unlikely reference leaks in _hashopenssl. The leaks only occur in
out-of-memory cases. Thanks to Charalampos Stratakis.
Signed-off-by: Christian Heimes <christian@python.org>
https://bugs.python.org/issue36179
--- /dev/null
+Fix two unlikely reference leaks in _hashopenssl. The leaks only occur in
+out-of-memory cases.
return NULL;
}
+ /* save the name for .name to return */
+ Py_INCREF(name);
+ retval->name = name;
+ retval->lock = NULL;
+
retval->ctx = EVP_MD_CTX_new();
if (retval->ctx == NULL) {
+ Py_DECREF(retval);
PyErr_NoMemory();
return NULL;
}
- /* save the name for .name to return */
- Py_INCREF(name);
- retval->name = name;
- retval->lock = NULL;
-
return retval;
}
return NULL;
if (!locked_EVP_MD_CTX_copy(newobj->ctx, self)) {
+ Py_DECREF(newobj);
return _setException(PyExc_ValueError);
}
return (PyObject *)newobj;