[Python-checkins] Fix the error handling in bytesio_sizeof(). (GH-10459)

Serhiy Storchaka webhook-mailer at python.org
Sat Jun 1 17:07:49 EDT 2019


https://github.com/python/cpython/commit/36dcaab7fde5d2e54cdeff5b705b5adcb27726dd
commit: 36dcaab7fde5d2e54cdeff5b705b5adcb27726dd
branch: master
author: Zackery Spytz <zspytz at gmail.com>
committer: Serhiy Storchaka <storchaka at gmail.com>
date: 2019-06-02T00:07:45+03:00
summary:

Fix the error handling in bytesio_sizeof(). (GH-10459)

bytesio_sizeof() must check if an error has occurred in _PySys_GetSizeOf().

files:
M Modules/_io/bytesio.c

diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index 32427e44de5b..19e1ed8441e3 100644
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -943,8 +943,13 @@ bytesio_sizeof(bytesio *self, void *unused)
     Py_ssize_t res;
 
     res = _PyObject_SIZE(Py_TYPE(self));
-    if (self->buf && !SHARED_BUF(self))
-        res += _PySys_GetSizeOf(self->buf);
+    if (self->buf && !SHARED_BUF(self)) {
+        Py_ssize_t s = _PySys_GetSizeOf(self->buf);
+        if (s == -1) {
+            return NULL;
+        }
+        res += s;
+    }
     return PyLong_FromSsize_t(res);
 }
 



More information about the Python-checkins mailing list