]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-111178: fix some USAN failures - mismatched function pointers (GH-123004)
authorBénédikt Tran <10796600+picnixz@users.noreply.github.com>
Fri, 27 Sep 2024 21:51:50 +0000 (23:51 +0200)
committerGitHub <noreply@github.com>
Fri, 27 Sep 2024 21:51:50 +0000 (23:51 +0200)
Objects/exceptions.c
Objects/rangeobject.c
Objects/tupleobject.c

index fda62f159c1540d1fddf20d14ecff00531bfc045..b391085516549461352e80113e458672878b3c12 100644 (file)
@@ -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,
index 1318ce0319d438174eff760b8e1d957b8f82699a..2942ab624edf72707ee3385a029d24ed2477c38f 100644 (file)
@@ -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 **************************/
index f14f10ab9c0a46f3d698b19c9a768d5e3bbfff13..4d8cca68df946afc218d020772ce89123533cef2 100644 (file)
@@ -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,
 };