From: Arran Cudbard-Bell Date: Tue, 14 May 2024 02:40:24 +0000 (-0600) Subject: Use talloc get type abort for safety... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a4c3cd9bb20af48fbc5aabf16ccc7840cb4a820;p=thirdparty%2Ffreeradius-server.git Use talloc get type abort for safety... --- diff --git a/src/lib/io/network.c b/src/lib/io/network.c index 66ad552cb4b..632cb0ae190 100644 --- a/src/lib/io/network.c +++ b/src/lib/io/network.c @@ -1292,14 +1292,14 @@ static int _network_socket_free(fr_network_socket_t *s) */ static void fr_network_listen_callback(void *ctx, void const *data, size_t data_size, UNUSED fr_time_t now) { - fr_network_t *nr = ctx; + fr_network_t *nr = talloc_get_type_abort(ctx, fr_network_t); fr_listen_t *li; fr_assert(data_size == sizeof(li)); if (data_size != sizeof(li)) return; - memcpy(&li, data, sizeof(li)); + li = talloc_get_type_abort(*((void * const *)data), fr_listen_t); (void) fr_network_listen_add_self(nr, li); } @@ -1420,8 +1420,8 @@ static int fr_network_listen_add_self(fr_network_t *nr, fr_listen_t *li) static void fr_network_directory_callback(void *ctx, void const *data, size_t data_size, UNUSED fr_time_t now) { int num_messages; - fr_network_t *nr = ctx; - fr_listen_t *li; + fr_network_t *nr = talloc_get_type_abort(ctx, fr_network_t); + fr_listen_t *li = talloc_get_type_abort(*((void * const *)data), fr_listen_t); fr_network_socket_t *s; fr_app_io_t const *app_io; fr_event_vnode_func_t funcs = { .extend = fr_network_vnode_extend }; diff --git a/src/listen/detail/proto_detail_work.c b/src/listen/detail/proto_detail_work.c index f2a5a39a9f5..7bbaf09231b 100644 --- a/src/listen/detail/proto_detail_work.c +++ b/src/listen/detail/proto_detail_work.c @@ -116,7 +116,7 @@ static int mod_decode(void const *instance, request_t *request, UNUSED uint8_t * { proto_detail_work_t const *inst = talloc_get_type_abort_const(instance, proto_detail_work_t); - fr_detail_entry_t const *track = request->async->packet_ctx; + fr_detail_entry_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_detail_entry_t); fr_pair_t *vp; request->client = inst->client;