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

bytesio_sizeof() must check if an error has occurred in _PySys_GetSizeOf().
This commit is contained in:
Zackery Spytz 2019-06-01 15:07:46 -06:00 committed by Serhiy Storchaka
parent bdbad71b9d
commit 36dcaab7fd
1 changed files with 7 additions and 2 deletions

View File

@ -943,8 +943,13 @@ bytesio_sizeof(bytesio *self, void *unused)
Py_ssize_t res; Py_ssize_t res;
res = _PyObject_SIZE(Py_TYPE(self)); res = _PyObject_SIZE(Py_TYPE(self));
if (self->buf && !SHARED_BUF(self)) if (self->buf && !SHARED_BUF(self)) {
res += _PySys_GetSizeOf(self->buf); Py_ssize_t s = _PySys_GetSizeOf(self->buf);
if (s == -1) {
return NULL;
}
res += s;
}
return PyLong_FromSsize_t(res); return PyLong_FromSsize_t(res);
} }