append_list_to_probes uses the non-multithread-safe "strtok" while in
multithreaded context.
It is called by modprobe_lttng_data(), which is called from
init_kernel_tracer().
init_kernel_tracer is used from main() after other threads are created,
and also from process_client_msg() when a user attempts to interact with
the kernel domain if the kernel tracer has not yet been successfully
initialized.
Fixed by using the MT-safe strtok_r() instead.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Ic3f81551b8508451e0f9733c5de56a4d4407b813
{
char *next;
int ret;
- char *tmp_list, *cur_list;
+ char *tmp_list, *cur_list, *saveptr;
assert(list);
size_t name_len;
struct kern_modules_param *cur_mod;
- next = strtok(cur_list, ",");
+ next = strtok_r(cur_list, ",", &saveptr);
if (!next) {
break;
}