Fix: use MT-safe strtok_r in multithreaded context
[lttng-tools.git] / src / bin / lttng-sessiond / modprobe.c
index 03545ef41d25b0acf21a5681431daf5d16e99794..23d4536b1ad8f88c09902d7fe6c6d8269a05a519 100644 (file)
@@ -34,6 +34,7 @@
 
 #include "modprobe.h"
 #include "kern-modules.h"
+#include "lttng-sessiond.h"
 
 #define LTTNG_MOD_REQUIRED     1
 #define LTTNG_MOD_OPTIONAL     0
@@ -70,6 +71,7 @@ struct kern_modules_param kern_modules_probes_default[] = {
        { "lttng-probe-napi" },
        { "lttng-probe-net" },
        { "lttng-probe-power" },
+       { "lttng-probe-preemptirq" },
        { "lttng-probe-printk" },
        { "lttng-probe-random" },
        { "lttng-probe-rcu" },
@@ -494,7 +496,7 @@ static int append_list_to_probes(const char *list)
 {
        char *next;
        int ret;
-       char *tmp_list, *cur_list;
+       char *tmp_list, *cur_list, *saveptr;
 
        assert(list);
 
@@ -508,7 +510,7 @@ static int append_list_to_probes(const char *list)
                size_t name_len;
                struct kern_modules_param *cur_mod;
 
-               next = strtok(cur_list, ",");
+               next = strtok_r(cur_list, ",", &saveptr);
                if (!next) {
                        break;
                }
@@ -568,12 +570,7 @@ int modprobe_lttng_data(void)
         * Base probes: either from command line option, environment
         * variable or default list.
         */
-       if (kmod_probes_list) {
-               list = kmod_probes_list;
-       } else {
-               list = utils_get_kmod_probes_list();
-       }
-
+       list = config.kmod_probes_list.value;
        if (list) {
                /* User-specified probes. */
                ret = append_list_to_probes(list);
@@ -608,12 +605,7 @@ int modprobe_lttng_data(void)
        /*
         * Extra modules? Append them to current probes list.
         */
-       if (kmod_extra_probes_list) {
-               list = kmod_extra_probes_list;
-       } else {
-               list = utils_get_extra_kmod_probes_list();
-       }
-
+       list = config.kmod_extra_probes_list.value;
        if (list) {
                ret = append_list_to_probes(list);
                if (ret) {
This page took 0.041708 seconds and 4 git commands to generate.