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

* Skip write()/data_received() if sslpipe is destroyed
(cherry picked from commit 5e80a71ab67045fecec46573a1892e240b569ace)

Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
diff --git a/Lib/asyncio/sslproto.py b/Lib/asyncio/sslproto.py
index 863b543..2bbf134 100644
--- a/Lib/asyncio/sslproto.py
+++ b/Lib/asyncio/sslproto.py
@@ -504,6 +504,10 @@
 
         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 @@
 
     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: