Fix: sessiond: fix possible buffer overflow warning
[lttng-tools.git] / src / bin / lttng-sessiond / lttng-syscall.c
index 16eead6260783fd0d6ce1742004489623133e129..06021bcf5e7af4454412f575c11f209b2c6346cf 100644 (file)
@@ -39,6 +39,10 @@ int syscall_init_table(int tracer_fd)
        uint32_t bitness;
        char name[SYSCALL_NAME_LEN];
 
+#if (SYSCALL_NAME_LEN == 255)
+#define SYSCALL_NAME_LEN_SCANF_IS_A_BROKEN_API "254"
+#endif
+
        DBG3("Syscall init system call table");
 
        fd = kernctl_syscall_list(tracer_fd);
@@ -65,7 +69,7 @@ int syscall_init_table(int tracer_fd)
 
        while (fscanf(fp,
                                "syscall { index = %zu; \
-                               name = %" XSTR(SYSCALL_NAME_LEN) "[^;]; \
+                               name = %" SYSCALL_NAME_LEN_SCANF_IS_A_BROKEN_API "[^;]; \
                                bitness = %u; };\n",
                                &index, name, &bitness) == 3) {
                at_least_one_syscall = true;
@@ -162,7 +166,7 @@ static void destroy_syscall_ht(struct lttng_ht *ht)
                int ret;
 
                ret = lttng_ht_del(ht, &iter);
-               assert(!ret);
+               LTTNG_ASSERT(!ret);
                free(ksyscall);
        }
        ht_cleanup_push(ht);
@@ -198,8 +202,8 @@ static struct syscall *lookup_syscall(struct lttng_ht *ht, const char *name)
        struct lttng_ht_iter iter;
        struct syscall *ksyscall = NULL;
 
-       assert(ht);
-       assert(name);
+       LTTNG_ASSERT(ht);
+       LTTNG_ASSERT(name);
 
        lttng_ht_lookup(ht, (void *) name, &iter);
        node = lttng_ht_iter_get_node_str(&iter);
@@ -217,7 +221,7 @@ static struct syscall *lookup_syscall(struct lttng_ht *ht, const char *name)
 static void update_event_syscall_bitness(struct lttng_event *events,
                unsigned int index, unsigned int syscall_index)
 {
-       assert(events);
+       LTTNG_ASSERT(events);
 
        if (syscall_table[index].bitness == 32) {
                events[syscall_index].flags |= LTTNG_EVENT_FLAG_SYSCALL_32;
@@ -237,7 +241,7 @@ static int add_syscall_to_ht(struct lttng_ht *ht, unsigned int index,
        int ret;
        struct syscall *ksyscall;
 
-       assert(ht);
+       LTTNG_ASSERT(ht);
 
        ksyscall = zmalloc(sizeof(*ksyscall));
        if (!ksyscall) {
@@ -271,7 +275,7 @@ ssize_t syscall_table_list(struct lttng_event **_events)
        /* Hash table used to filter duplicate out. */
        struct lttng_ht *syscalls_ht = NULL;
 
-       assert(_events);
+       LTTNG_ASSERT(_events);
 
        DBG("Syscall table listing.");
 
This page took 0.024466 seconds and 4 git commands to generate.