Truncate exclusion names to have a terminal '\0'
[lttng-tools.git] / src / bin / lttng-sessiond / syscall.c
index b4f2e1eca92f2fb726aa774f8bc94f384bc2f000..7b9227b86912f8a80628167fdc2908df2eb6ccf4 100644 (file)
@@ -15,7 +15,7 @@
  * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#define _GNU_SOURCE
+#define _LGPL_SOURCE
 #include <common/bitfield.h>
 #include <common/common.h>
 #include <common/kernel-ctl/kernel-ctl.h>
@@ -72,7 +72,7 @@ int syscall_init_table(void)
        }
 
        while (fscanf(fp,
-                               "syscall { index = %lu; \
+                               "syscall { index = %zu; \
                                name = %" XSTR(SYSCALL_NAME_LEN) "[^;]; \
                                bitness = %u; };\n",
                                &index, name, &bitness) == 3) {
@@ -404,11 +404,15 @@ ssize_t syscall_list_channel(struct ltt_kernel_channel *kchan,
                        events = new_events;
                }
 
+               rcu_read_lock();
                ksyscall = lookup_syscall(syscalls_ht, syscall_table[i].name);
                if (ksyscall) {
                        update_event_syscall_bitness(events, i, ksyscall->index);
+                       rcu_read_unlock();
                        continue;
                }
+               ksyscall = NULL;
+               rcu_read_unlock();
 
                ret = add_syscall_to_ht(syscalls_ht, i, count);
                if (ret < 0) {
@@ -419,7 +423,7 @@ ssize_t syscall_list_channel(struct ltt_kernel_channel *kchan,
                strncpy(events[count].name, syscall_table[i].name,
                                sizeof(events[count].name));
                events[count].enabled = 1;
-               events[count].type = LTTNG_KERNEL_SYSCALL;
+               events[count].type = LTTNG_EVENT_SYSCALL;
                count++;
        }
 
@@ -428,7 +432,10 @@ ssize_t syscall_list_channel(struct ltt_kernel_channel *kchan,
        return count;
 
 error:
+       rcu_read_lock();
        destroy_syscall_ht(syscalls_ht);
+       rcu_read_unlock();
+
        free(events);
        return ret;
 }
This page took 0.026137 seconds and 4 git commands to generate.