changeset: 91604:f67df13dd512 branch: 3.4 parent: 91602:c8207b0148dc user: Victor Stinner date: Tue Jul 08 00:26:36 2014 +0200 files: Lib/asynchat.py Lib/test/test_asynchat.py Misc/NEWS description: Issue #11259: asynchat.async_chat().set_terminator() now raises a ValueError if the number of received bytes is negative. diff -r c8207b0148dc -r f67df13dd512 Lib/asynchat.py --- a/Lib/asynchat.py Tue Jul 08 00:16:54 2014 +0200 +++ b/Lib/asynchat.py Tue Jul 08 00:26:36 2014 +0200 @@ -99,6 +99,8 @@ """ if isinstance(term, str) and self.use_encoding: term = bytes(term, self.encoding) + elif isinstance(term, int) and term < 0: + raise ValueError('the number of received bytes must be positive') self.terminator = term def get_terminator(self): diff -r c8207b0148dc -r f67df13dd512 Lib/test/test_asynchat.py --- a/Lib/test/test_asynchat.py Tue Jul 08 00:16:54 2014 +0200 +++ b/Lib/test/test_asynchat.py Tue Jul 08 00:26:36 2014 +0200 @@ -304,5 +304,13 @@ self.assertEqual(f.pop(), (0, None)) +class TestNotConnected(unittest.TestCase): + def test_disallow_negative_terminator(self): + # Issue #11259 + client = asynchat.async_chat() + self.assertRaises(ValueError, client.set_terminator, -1) + + + if __name__ == "__main__": unittest.main() diff -r c8207b0148dc -r f67df13dd512 Misc/NEWS --- a/Misc/NEWS Tue Jul 08 00:16:54 2014 +0200 +++ b/Misc/NEWS Tue Jul 08 00:26:36 2014 +0200 @@ -27,6 +27,9 @@ Library ------- +- Issue #11259: asynchat.async_chat().set_terminator() now raises a ValueError + if the number of received bytes is negative. + - Issue #12523: asynchat.async_chat.push() now raises a TypeError if it doesn't get a bytes string