https://github.com/python/cpython/commit/5ed5572cac7ef204767ddf8e8888e15672ba558e
commit: 5ed5572cac7ef204767ddf8e8888e15672ba558e
branch: main
author: Bénédikt Tran <[email protected]>
committer: gpshead <[email protected]>
date: 2025-01-20T20:43:55Z
summary:
gh-111178: fix UBSan failures in `Modules/_multiprocessing/semaphore.c`
(#129084)
fix UBSan failures for `SemLockObject`
files:
M Modules/_multiprocessing/semaphore.c
diff --git a/Modules/_multiprocessing/semaphore.c
b/Modules/_multiprocessing/semaphore.c
index 9eef7c25636899..036db2cd4c6c85 100644
--- a/Modules/_multiprocessing/semaphore.c
+++ b/Modules/_multiprocessing/semaphore.c
@@ -28,6 +28,8 @@ typedef struct {
char *name;
} SemLockObject;
+#define _SemLockObject_CAST(op) ((SemLockObject *)(op))
+
/*[python input]
class SEM_HANDLE_converter(CConverter):
type = "SEM_HANDLE"
@@ -576,8 +578,9 @@ _multiprocessing_SemLock__rebuild_impl(PyTypeObject *type,
SEM_HANDLE handle,
}
static void
-semlock_dealloc(SemLockObject* self)
+semlock_dealloc(PyObject *op)
{
+ SemLockObject *self = _SemLockObject_CAST(op);
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
if (self->handle != SEM_FAILED)
@@ -718,7 +721,7 @@ _multiprocessing_SemLock___exit___impl(SemLockObject *self,
}
static int
-semlock_traverse(SemLockObject *s, visitproc visit, void *arg)
+semlock_traverse(PyObject *s, visitproc visit, void *arg)
{
Py_VISIT(Py_TYPE(s));
return 0;
_______________________________________________
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]