Browse Source

bpo-36179: Fix ref leaks in _hashopenssl (GH-12158)

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
pull/12167/head
Christian Heimes 7 years ago
committed by Miss Islington (bot)
parent
commit
b7bc283ab6
  1. 2
      Misc/NEWS.d/next/Library/2019-03-04-10-42-46.bpo-36179.jEyuI-.rst
  2. 12
      Modules/_hashopenssl.c

2
Misc/NEWS.d/next/Library/2019-03-04-10-42-46.bpo-36179.jEyuI-.rst

@ -0,0 +1,2 @@
Fix two unlikely reference leaks in _hashopenssl. The leaks only occur in
out-of-memory cases.

12
Modules/_hashopenssl.c

@ -109,17 +109,18 @@ newEVPobject(PyObject *name)
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;
}
@ -182,6 +183,7 @@ EVP_copy_impl(EVPobject *self)
return NULL;
if (!locked_EVP_MD_CTX_copy(newobj->ctx, self)) {
Py_DECREF(newobj);
return _setException(PyExc_ValueError);
}
return (PyObject *)newobj;

Loading…
Cancel
Save