https://github.com/python/cpython/commit/c1478d1ebb7a6331d06939a27618dafb7fce91f1
commit: c1478d1ebb7a6331d06939a27618dafb7fce91f1
branch: main
author: Bénédikt Tran <[email protected]>
committer: encukou <[email protected]>
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 -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]