diff options
author | Victor Stinner <vstinner@python.org> | 2024-11-19 08:13:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-19 08:13:20 (GMT) |
commit | 84f07c3a4cbcfe488ccfb4030571be0bc4de7e45 (patch) | |
tree | 6561e024036dfab43523d077571784f905952911 /Objects | |
parent | b3687ad454c4ac54c8599a10f3ace8a13ca48915 (diff) | |
download | cpython-84f07c3a4cbcfe488ccfb4030571be0bc4de7e45.zip cpython-84f07c3a4cbcfe488ccfb4030571be0bc4de7e45.tar.gz cpython-84f07c3a4cbcfe488ccfb4030571be0bc4de7e45.tar.bz2 |
gh-126594: Fix typeobject.c wrap_buffer() cast (#126754)
Reject flags smaller than INT_MIN.
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/typeobject.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Objects/typeobject.c b/Objects/typeobject.c index a6cf3da..840d004 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -9314,13 +9314,13 @@ wrap_buffer(PyObject *self, PyObject *args, void *wrapped) if (flags == -1 && PyErr_Occurred()) { return NULL; } - if (flags > INT_MAX) { + if (flags > INT_MAX || flags < INT_MIN) { PyErr_SetString(PyExc_OverflowError, - "buffer flags too large"); + "buffer flags out of range"); return NULL; } - return _PyMemoryView_FromBufferProc(self, Py_SAFE_DOWNCAST(flags, Py_ssize_t, int), + return _PyMemoryView_FromBufferProc(self, (int)flags, (getbufferproc)wrapped); } |