diff options
author | Bénédikt Tran <10796600+picnixz@users.noreply.github.com> | 2024-09-27 21:51:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-27 21:51:50 (GMT) |
commit | 702c4a247360b43348a95c6fc76eb932483c33b1 (patch) | |
tree | 3d46bb3ed5cccc1afebaa85ddb8c508d8e0fd72c /Objects | |
parent | 0e21cc6cf820679439d72e3ebd06227ee2a085f9 (diff) | |
download | cpython-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.c | 5 | ||||
-rw-r--r-- | Objects/rangeobject.c | 6 | ||||
-rw-r--r-- | Objects/tupleobject.c | 5 |
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, }; |