(Merge 3.4) Issue #11259: asynchat.async_chat().set_terminator() now raises a

ValueError if the number of received bytes is negative.
This commit is contained in:
Victor Stinner 2014-07-08 00:34:48 +02:00
commit db5f8fcde6
3 changed files with 13 additions and 0 deletions

View File

@ -99,6 +99,8 @@ class async_chat(asyncore.dispatcher):
"""
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):

View File

@ -311,5 +311,13 @@ class TestFifo(unittest.TestCase):
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()

View File

@ -108,6 +108,9 @@ Core and Builtins
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