https://github.com/python/cpython/commit/c1478d1ebb7a6331d06939a27618dafb7fce91f1 commit: c1478d1ebb7a6331d06939a27618dafb7fce91f1 branch: main author: Bénédikt Tran <10796600+picn...@users.noreply.github.com> committer: encukou <encu...@gmail.com> date: 2025-02-25T13:13:47+01:00 summary:
gh-111178: fix UBSan failures in `Modules/unicodedata.c` (GH-129801) fix UBSan failures for `PreviousDBVersion` files: M Modules/unicodedata.c diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c index 79be7674fc8ab5..f1ff7bd3eba232 100644 --- a/Modules/unicodedata.c +++ b/Modules/unicodedata.c @@ -77,9 +77,11 @@ typedef struct previous_version { Py_UCS4 (*normalization)(Py_UCS4); } PreviousDBVersion; +#define PreviousDBVersion_CAST(op) ((PreviousDBVersion *)(op)) + #include "clinic/unicodedata.c.h" -#define get_old_record(self, v) ((((PreviousDBVersion*)self)->getrecord)(v)) +#define get_old_record(self, v) (PreviousDBVersion_CAST(self)->getrecord(v)) static PyMemberDef DB_members[] = { {"unidata_version", Py_T_STRING, offsetof(PreviousDBVersion, name), Py_READONLY}, @@ -1591,14 +1593,14 @@ static PyMethodDef unicodedata_functions[] = { }; static int -ucd_traverse(PreviousDBVersion *self, visitproc visit, void *arg) +ucd_traverse(PyObject *self, visitproc visit, void *arg) { Py_VISIT(Py_TYPE(self)); return 0; } static void -ucd_dealloc(PreviousDBVersion *self) +ucd_dealloc(PyObject *self) { PyTypeObject *tp = Py_TYPE(self); PyObject_GC_UnTrack(self); _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com