summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorBénédikt Tran <10796600+picnixz@users.noreply.github.com>2024-09-27 21:51:50 (GMT)
committerGitHub <noreply@github.com>2024-09-27 21:51:50 (GMT)
commit702c4a247360b43348a95c6fc76eb932483c33b1 (patch)
tree3d46bb3ed5cccc1afebaa85ddb8c508d8e0fd72c /Objects
parent0e21cc6cf820679439d72e3ebd06227ee2a085f9 (diff)
downloadcpython-702c4a247360b43348a95c6fc76eb932483c33b1.zip
cpython-702c4a247360b43348a95c6fc76eb932483c33b1.tar.gz
cpython-702c4a247360b43348a95c6fc76eb932483c33b1.tar.bz2
gh-111178: fix some USAN failures - mismatched function pointers (GH-123004)
Diffstat (limited to 'Objects')
-rw-r--r--Objects/exceptions.c5
-rw-r--r--Objects/rangeobject.c6
-rw-r--r--Objects/tupleobject.c5
3 files changed, 9 insertions, 7 deletions
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index fda62f1..b391085 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -3387,8 +3387,9 @@ _PyErr_NoMemory(PyThreadState *tstate)
}
static void
-MemoryError_dealloc(PyBaseExceptionObject *self)
+MemoryError_dealloc(PyObject *obj)
{
+ PyBaseExceptionObject *self = (PyBaseExceptionObject *)obj;
_PyObject_GC_UNTRACK(self);
BaseException_clear(self);
@@ -3447,7 +3448,7 @@ PyTypeObject _PyExc_MemoryError = {
PyVarObject_HEAD_INIT(NULL, 0)
"MemoryError",
sizeof(PyBaseExceptionObject),
- 0, (destructor)MemoryError_dealloc, 0, 0, 0, 0, 0, 0, 0,
+ 0, MemoryError_dealloc, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
PyDoc_STR("Out of memory."), (traverseproc)BaseException_traverse,
diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index 1318ce0..2942ab6 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -143,14 +143,14 @@ range_new(PyTypeObject *type, PyObject *args, PyObject *kw)
static PyObject *
-range_vectorcall(PyTypeObject *type, PyObject *const *args,
+range_vectorcall(PyObject *rangetype, PyObject *const *args,
size_t nargsf, PyObject *kwnames)
{
Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
if (!_PyArg_NoKwnames("range", kwnames)) {
return NULL;
}
- return range_from_array(type, args, nargs);
+ return range_from_array((PyTypeObject *)rangetype, args, nargs);
}
PyDoc_STRVAR(range_doc,
@@ -803,7 +803,7 @@ PyTypeObject PyRange_Type = {
0, /* tp_init */
0, /* tp_alloc */
range_new, /* tp_new */
- .tp_vectorcall = (vectorcallfunc)range_vectorcall
+ .tp_vectorcall = range_vectorcall
};
/*********************** range Iterator **************************/
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index f14f10a..4d8cca6 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -999,8 +999,9 @@ tupleiter_traverse(_PyTupleIterObject *it, visitproc visit, void *arg)
}
static PyObject *
-tupleiter_next(_PyTupleIterObject *it)
+tupleiter_next(PyObject *obj)
{
+ _PyTupleIterObject *it = (_PyTupleIterObject *)obj;
PyTupleObject *seq;
PyObject *item;
@@ -1101,7 +1102,7 @@ PyTypeObject PyTupleIter_Type = {
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
PyObject_SelfIter, /* tp_iter */
- (iternextfunc)tupleiter_next, /* tp_iternext */
+ tupleiter_next, /* tp_iternext */
tupleiter_methods, /* tp_methods */
0,
};