bpo-33037: Skip sending/receiving after SSL transport closing (GH-6044)

* Skip write()/data_received() if sslpipe is destroyed
This commit is contained in:
Andrew Svetlov 2018-03-10 17:48:35 +02:00 committed by GitHub
parent 496431ffb6
commit 5e80a71ab6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 20 deletions

View file

@ -504,6 +504,10 @@ class SSLProtocol(protocols.Protocol):
The argument is a bytes object.
"""
if self._sslpipe is None:
# transport closing, sslpipe is destroyed
return
try:
ssldata, appdata = self._sslpipe.feed_ssldata(data)
except ssl.SSLError as e:
@ -636,7 +640,7 @@ class SSLProtocol(protocols.Protocol):
def _process_write_backlog(self):
# Try to make progress on the write backlog.
if self._transport is None:
if self._transport is None or self._sslpipe is None:
return
try: