From: Alan T. DeKok Date: Tue, 30 Oct 2018 15:14:38 +0000 (-0400) Subject: notes on listener being thread-safe here X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aba9efb0a553d541c87340658c009375a4e28890;p=thirdparty%2Ffreeradius-server.git notes on listener being thread-safe here --- diff --git a/src/modules/proto_detail/proto_detail.c b/src/modules/proto_detail/proto_detail.c index 806411ed4de..6900598d7f0 100644 --- a/src/modules/proto_detail/proto_detail.c +++ b/src/modules/proto_detail/proto_detail.c @@ -436,9 +436,10 @@ static int mod_open(void *instance, fr_schedule_t *sc, CONF_SECTION *conf) * back again. */ li = talloc_zero(inst, fr_listen_t); + talloc_set_destructor(li, fr_io_listen_free); li->app_io = inst->app_io; - li->thread_instance = talloc_zero_array(li, uint8_t, li->app_io->thread_inst_size); + li->thread_instance = talloc_zero_array(NULL, uint8_t, li->app_io->thread_inst_size); talloc_set_name(li->thread_instance, "proto_%s_thread_t", inst->app_io->name); li->app_io_instance = inst->app_io_instance; diff --git a/src/modules/proto_detail/proto_detail_file.c b/src/modules/proto_detail/proto_detail_file.c index 563f4fbb19b..4ca2ff96fa5 100644 --- a/src/modules/proto_detail/proto_detail_file.c +++ b/src/modules/proto_detail/proto_detail_file.c @@ -297,6 +297,10 @@ static int work_exists(proto_detail_file_thread_t *thread, int fd) return 1; } + /* + * This listener is allocated in a thread-specific + * context, so it doesn't need a destructor, + */ MEM(li = talloc_zero(NULL, fr_listen_t)); /*