changeset: 77838:49dee01d72f9 branch: 2.7 parent: 77832:c37cb11b546f user: Amaury Forgeot d'Arc date: Fri Jun 29 01:42:46 2012 +0200 files: Lib/test/test_hashlib.py Misc/NEWS Modules/_hashopenssl.c description: Issue #15219: Fix a reference leak when hashlib.new() is called with invalid parameters. diff -r c37cb11b546f -r 49dee01d72f9 Lib/test/test_hashlib.py --- a/Lib/test/test_hashlib.py Thu Jun 28 13:48:17 2012 +0300 +++ b/Lib/test/test_hashlib.py Fri Jun 29 01:42:46 2012 +0200 @@ -108,12 +108,8 @@ _algo.islower()])) def test_unknown_hash(self): - try: - hashlib.new('spam spam spam spam spam') - except ValueError: - pass - else: - self.assertTrue(0 == "hashlib didn't reject bogus hash name") + self.assertRaises(ValueError, hashlib.new, 'spam spam spam spam spam') + self.assertRaises(TypeError, hashlib.new, 1) def test_get_builtin_constructor(self): get_builtin_constructor = hashlib.__dict__[ diff -r c37cb11b546f -r 49dee01d72f9 Misc/NEWS --- a/Misc/NEWS Thu Jun 28 13:48:17 2012 +0300 +++ b/Misc/NEWS Fri Jun 29 01:42:46 2012 +0200 @@ -75,6 +75,9 @@ 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 created and renamed over the old file when flush() is called on an mbox, MMDF or Babyl mailbox. diff -r c37cb11b546f -r 49dee01d72f9 Modules/_hashopenssl.c --- a/Modules/_hashopenssl.c Thu Jun 28 13:48:17 2012 +0300 +++ b/Modules/_hashopenssl.c Fri Jun 29 01:42:46 2012 +0200 @@ -477,6 +477,7 @@ } if (!PyArg_Parse(name_obj, "s", &name)) { + PyBuffer_Release(&view); PyErr_SetString(PyExc_TypeError, "name must be a string"); return NULL; }

AltStyle によって変換されたページ (->オリジナル) /