From 36dcaab7fde5d2e54cdeff5b705b5adcb27726dd Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Sat, 1 Jun 2019 15:07:46 -0600 Subject: [PATCH] Fix the error handling in bytesio_sizeof(). (GH-10459) bytesio_sizeof() must check if an error has occurred in _PySys_GetSizeOf(). --- Modules/_io/bytesio.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c index 32427e44de5..19e1ed8441e 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); }