From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sat, 1 Jun 2019 21:58:33 +0000 (-0700) Subject: Fix the error handling in bytesio_sizeof(). (GH-10459) X-Git-Tag: v3.7.4rc1~71 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fefdc009906c5ea8fb57383817b3c42d3b0634ad;p=thirdparty%2FPython%2Fcpython.git Fix the error handling in bytesio_sizeof(). (GH-10459) bytesio_sizeof() must check if an error has occurred in _PySys_GetSizeOf(). (cherry picked from commit 36dcaab7fde5d2e54cdeff5b705b5adcb27726dd) Co-authored-by: Zackery Spytz --- diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c index e4d637cc3aea..8501f42ed800 100644 --- a/Modules/_io/bytesio.c +++ b/Modules/_io/bytesio.c @@ -942,8 +942,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); }