summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-11-19 08:13:20 (GMT)
committerGitHub <noreply@github.com>2024-11-19 08:13:20 (GMT)
commit84f07c3a4cbcfe488ccfb4030571be0bc4de7e45 (patch)
tree6561e024036dfab43523d077571784f905952911 /Objects
parentb3687ad454c4ac54c8599a10f3ace8a13ca48915 (diff)
downloadcpython-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.c6
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);
}