summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-06-01 14:58:33 -0700
committerGitHub <noreply@github.com>2019-06-01 14:58:33 -0700
commitfefdc009906c5ea8fb57383817b3c42d3b0634ad (patch)
tree8d1da63702893782d4426bea5135611fd0dbe149 /Modules
parentfc914dd5e03db9188b6d28d1c48574dc78ee4325 (diff)
downloadcpython-git-fefdc009906c5ea8fb57383817b3c42d3b0634ad.tar.gz
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 <zspytz@gmail.com>
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_io/bytesio.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index e4d637cc3a..8501f42ed8 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);
}