From 29224295381d9c038339d25d98584cb146ba5f32 Mon Sep 17 00:00:00 2001 From: =?utf8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Fri, 21 Feb 2025 15:59:04 +0100 Subject: [PATCH] gh-111178: fix UBSan failures in `Modules/_randommodule.c` (GH-129791) Fix UBSan failures for `RandomObject` Suppress unused return values --- Modules/_randommodule.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c index ad66df47349d..d5bac2f5b781 100644 --- a/Modules/_randommodule.c +++ b/Modules/_randommodule.c @@ -117,6 +117,7 @@ typedef struct { uint32_t state[N]; } RandomObject; +#define RandomObject_CAST(op) ((RandomObject *)(op)) #include "clinic/_randommodule.c.h" @@ -551,7 +552,7 @@ _random_Random_getrandbits_impl(RandomObject *self, int k) } static int -random_init(RandomObject *self, PyObject *args, PyObject *kwds) +random_init(PyObject *self, PyObject *args, PyObject *kwds) { PyObject *arg = NULL; _randomstate *state = _randomstate_type(Py_TYPE(self)); @@ -570,7 +571,7 @@ random_init(RandomObject *self, PyObject *args, PyObject *kwds) if (PyTuple_GET_SIZE(args) == 1) arg = PyTuple_GET_ITEM(args, 0); - return random_seed(self, arg); + return random_seed(RandomObject_CAST(self), arg); } @@ -665,7 +666,7 @@ _random_clear(PyObject *module) static void _random_free(void *module) { - _random_clear((PyObject *)module); + (void)_random_clear((PyObject *)module); } static struct PyModuleDef _randommodule = { -- 2.47.3