Issue #15219: Fix a reference leak when hashlib.new() is called with

invalid parameters.
This commit is contained in:
Amaury Forgeot d'Arc 2012-06-29 01:42:46 +02:00
parent 45f0d9835c
commit d958cc960f
3 changed files with 6 additions and 6 deletions

View File

@ -108,12 +108,8 @@ class HashLibTestCase(unittest.TestCase):
_algo.islower()])) _algo.islower()]))
def test_unknown_hash(self): def test_unknown_hash(self):
try: self.assertRaises(ValueError, hashlib.new, 'spam spam spam spam spam')
hashlib.new('spam spam spam spam spam') self.assertRaises(TypeError, hashlib.new, 1)
except ValueError:
pass
else:
self.assertTrue(0 == "hashlib didn't reject bogus hash name")
def test_get_builtin_constructor(self): def test_get_builtin_constructor(self):
get_builtin_constructor = hashlib.__dict__[ get_builtin_constructor = hashlib.__dict__[

View File

@ -75,6 +75,9 @@ Core and Builtins
Library Library
------- -------
- Issue #15219: Fix a reference leak when hashlib.new() is called with
invalid parameters.
- Issue #9559: If messages were only added, a new file is no longer - Issue #9559: If messages were only added, a new file is no longer
created and renamed over the old file when flush() is called on an created and renamed over the old file when flush() is called on an
mbox, MMDF or Babyl mailbox. mbox, MMDF or Babyl mailbox.

View File

@ -477,6 +477,7 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
} }
if (!PyArg_Parse(name_obj, "s", &name)) { if (!PyArg_Parse(name_obj, "s", &name)) {
PyBuffer_Release(&view);
PyErr_SetString(PyExc_TypeError, "name must be a string"); PyErr_SetString(PyExc_TypeError, "name must be a string");
return NULL; return NULL;
} }