Issue #9854: The default read() implementation in io.RawIOBase now
handles non-blocking readinto() returning None correctly.
diff --git a/Lib/_pyio.py b/Lib/_pyio.py
index d6dce6d..83bce70 100644
--- a/Lib/_pyio.py
+++ b/Lib/_pyio.py
@@ -544,6 +544,8 @@
             return self.readall()
         b = bytearray(n.__index__())
         n = self.readinto(b)
+        if n is None:
+            return None
         del b[n:]
         return bytes(b)
 
@@ -561,7 +563,7 @@
         """Read up to len(b) bytes into b.
 
         Returns number of bytes read (0 for EOF), or None if the object
-        is set not to block as has no data to read.
+        is set not to block and has no data to read.
         """
         self._unsupported("readinto")