From 527a07c6b632f6991102d4fd08ac1f5f962ddfdf Mon Sep 17 00:00:00 2001 From: shikokuchuo <53399081+shikokuchuo@users.noreply.github.com> Date: Fri, 21 Mar 2025 11:59:38 +0000 Subject: fix aio_reap_list use of nni_aio_free() pointer to incorrect function type UBSAN warning --- src/core/aio.c | 8 +++++++- src/core/aio.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/aio.c b/src/core/aio.c index 128178c8..9b0fe4d5 100644 --- a/src/core/aio.c +++ b/src/core/aio.c @@ -74,7 +74,7 @@ static int nni_aio_expire_q_cnt; static nni_reap_list aio_reap_list = { .rl_offset = offsetof(nni_aio, a_reap_node), - .rl_func = (nni_cb) nni_aio_free, + .rl_func = nni_aio_free_cb, }; static void nni_aio_expire_add(nni_aio *); @@ -146,6 +146,12 @@ nni_aio_free(nni_aio *aio) } } +void +nni_aio_free_cb(void *aio) +{ + nni_aio_free((nni_aio *) aio); +} + void nni_aio_reap(nni_aio *aio) { diff --git a/src/core/aio.h b/src/core/aio.h index e0b5a388..a1b06e1d 100644 --- a/src/core/aio.h +++ b/src/core/aio.h @@ -44,6 +44,7 @@ extern nng_err nni_aio_alloc(nni_aio **, nni_cb, void *arg); // This must only be called on an object that was allocated // with nni_aio_allocate. extern void nni_aio_free(nni_aio *aio); +extern void nni_aio_free_cb(void *aio); // nni_aio_stop cancels any unfinished I/O, running completion callbacks, // but also prevents any new operations from starting (nni_aio_start will -- cgit v1.2.3-70-g09d2