]> granicus.if.org Git - python/commitdiff
Issue #23779: imaplib raises TypeError if authenticator tries to abort.
authorRobert Collins <rbtcollins@hp.com>
Thu, 30 Jul 2015 21:01:38 +0000 (09:01 +1200)
committerRobert Collins <rbtcollins@hp.com>
Thu, 30 Jul 2015 21:01:38 +0000 (09:01 +1200)
Patch from Craig Holmquist.

1  2 
Lib/imaplib.py
Lib/test/test_imaplib.py
Misc/ACKS
Misc/NEWS

diff --cc Lib/imaplib.py
Simple merge
index 80e27f39730ab85b79f16bdc99a2dde11d2bde0f,96b4f32316c713bad0d478edc5f49eb806a1901d..824865680fa76213c29c836760a251d41702f70c
@@@ -419,6 -324,26 +419,26 @@@ class ThreadedNetworkedTests(unittest.T
              ret, data = client.login_cram_md5("tim", b"tanstaaftanstaaf")
              self.assertEqual(ret, "OK")
  
 -
+     @reap_threads
+     def test_aborted_authentication(self):
+         class MyServer(SimpleIMAPHandler):
+             def cmd_AUTHENTICATE(self, tag, args):
+                 self._send_textline('+')
+                 self.response = yield
+                 if self.response == b'*\r\n':
+                     self._send_tagged(tag, 'NO', '[AUTHENTICATIONFAILED] aborted')
+                 else:
+                     self._send_tagged(tag, 'OK', 'MYAUTH successful')
+         with self.reaped_pair(MyServer) as (server, client):
+             with self.assertRaises(imaplib.IMAP4.error):
+                 code, data = client.authenticate('MYAUTH', lambda x: None)
++
      def test_linetoolong(self):
          class TooLongHandler(SimpleIMAPHandler):
              def handle(self):
diff --cc Misc/ACKS
Simple merge
diff --cc Misc/NEWS
index b9950c3a2711c70003e12a1ae22b46d565ef0f67,6798182a9900f3ee13b880151e25353cef4e1d08..03a3c0fefd5eb1d5a596622837b5e7513c64d3d3
+++ b/Misc/NEWS
@@@ -10,50 -10,58 +10,53 @@@ Release date: 2015-08-0
  Core and Builtins
  -----------------
  
 -- Issue #24467: Fixed possible buffer over-read in bytearray. The bytearray
 -  object now always allocates place for trailing null byte and it's buffer now
 -  is always null-terminated.
 +Library
 +-------
  
 -- Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
 -  PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
 -  to check for and handle errors correctly.
++- Issue #23779: imaplib raises TypeError if authenticator tries to abort.
++  Patch from Craig Holmquist.
 -- Issue #24257: Fixed system error in the comparison of faked
 -  types.SimpleNamespace.
 +- Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch
 +  written by Matthieu Gautier.
  
 -- Issue #22939: Fixed integer overflow in iterator object.  Patch by
 -  Clement Rouault.
 +- Issue #23254: Document how to close the TCPServer listening socket.
 +  Patch from Martin Panter.
  
 -- Issue #23985: Fix a possible buffer overrun when deleting a slice from
 -  the front of a bytearray and then appending some other bytes data.
 +- Issue #19450: Update Windows and OS X installer builds to use SQLite 3.8.11.
  
 -- Issue #24102: Fixed exception type checking in standard error handlers.
 +- Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
  
 -- Issue #23757:  PySequence_Tuple() incorrectly called the concrete list API
 -  when the data was a list subclass.
 +Documentation
 +-------------
  
 -- Issue #24407: Fix crash when dict is mutated while being updated.
 +- Issue #23589: Remove duplicate sentence from the FAQ.  Patch by Yongzhi Pan.
  
 -- Issue #24096: Make warnings.warn_explicit more robust against mutation of the
 -  warnings.filters list.
 +- Issue #24729: Correct IO tutorial to match implementation regarding
 +  encoding parameter to open function.
  
 -- Issue #23996: Avoid a crash when a delegated generator raises an
 -  unnormalized StopIteration exception.  Patch by Stefan Behnel.
  
 -- Issue #24022: Fix tokenizer crash when processing undecodable source code.
 +What's New in Python 3.5.0 beta 4?
 +==================================
  
 -- Issue #23309: Avoid a deadlock at shutdown if a daemon thread is aborted
 -  while it is holding a lock to a buffered I/O object, and the main thread
 -  tries to use the same I/O object (typically stdout or stderr).  A fatal
 -  error is emitted instead.
 +Release date: 2015-07-26
  
 -- Issue #22977: Fixed formatting Windows error messages on Wine.
 -  Patch by Martin Panter.
 +Core and Builtins
 +-----------------
  
 -- Issue #23803: Fixed str.partition() and str.rpartition() when a separator
 -  is wider then partitioned string.
 +- Issue #23573: Restored optimization of bytes.rfind() and bytearray.rfind()
 +  for single-byte argument on Linux.
  
 -- Issue #23192: Fixed generator lambdas.  Patch by Bruno Cauet.
 +- Issue #24569: Make PEP 448 dictionary evaluation more consistent.
  
 -- Issue #23629: Fix the default __sizeof__ implementation for variable-sized
 -  objects.
 +- Issue #24583: Fix crash when set is mutated while being updated.
  
 -- Issue #24044: Fix possible null pointer dereference in list.sort in out of
 -  memory conditions.
 +- Issue #24407: Fix crash when dict is mutated while being updated.
  
 -- Issue #21354: PyCFunction_New function is exposed by python DLL again.
 +- Issue #24619: New approach for tokenizing async/await. As a consequence,
 +  is is now possible to have one-line 'async def foo(): await ..' functions.
 +
 +- Issue #24687: Plug refleak on SyntaxError in function parameters
 +  annotations.
  
  Library
  -------