closes bpo-28557: error message for bad raw readinto (GH-7496)

Co-authored-by: Benjamin Peterson <benjamin@python.org>
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index f8e21f2..5984d34 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -1483,6 +1483,15 @@
     }
     n = PyNumber_AsSsize_t(res, PyExc_ValueError);
     Py_DECREF(res);
+
+    if (n == -1 && PyErr_Occurred()) {
+        _PyErr_FormatFromCause(
+            PyExc_OSError,
+            "raw readinto() failed"
+        );
+        return -1;
+    }
+
     if (n < 0 || n > len) {
         PyErr_Format(PyExc_OSError,
                      "raw readinto() returned invalid length %zd "