X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt-sessiond%2Fkernel-ctl.c;h=3879c2bbb3bc9c9bda33d47564ee5a9c0ccc0471;hb=e88129fcabf35d124a7d97f6600350745dcbbb81;hp=3dd146dd4b9792fe6754ef1136a49aef6b111c53;hpb=d0254c7c0bb43c62abafdf866b16de0da1ad4d5d;p=lttng-tools.git diff --git a/ltt-sessiond/kernel-ctl.c b/ltt-sessiond/kernel-ctl.c index 3dd146dd4..3879c2bbb 100644 --- a/ltt-sessiond/kernel-ctl.c +++ b/ltt-sessiond/kernel-ctl.c @@ -25,7 +25,7 @@ #include #include "lttngerr.h" -#include "libkernelctl.h" +#include "kernelctl.h" #include "kernel-ctl.h" /* @@ -587,7 +587,7 @@ ssize_t kernel_list_events(int tracer_fd, struct lttng_event **events) fp = fdopen(fd, "r"); if (fp == NULL) { perror("kernel tracepoint list fdopen"); - goto error; + goto error_fp; } /* @@ -599,26 +599,30 @@ ssize_t kernel_list_events(int tracer_fd, struct lttng_event **events) while ((size = fscanf(fp, "event { name = %m[^;]; };%n\n", &event, &pos)) == 1) { if (count > nbmem) { - DBG("Reallocating event list from %zd to %zd bytes", nbmem, + DBG("Reallocating event list from %zu to %zu bytes", nbmem, nbmem + KERNEL_EVENT_LIST_SIZE); /* Adding the default size again */ nbmem += KERNEL_EVENT_LIST_SIZE; elist = realloc(elist, nbmem); if (elist == NULL) { perror("realloc list events"); - goto error; + count = -ENOMEM; + goto end; } } - strncpy(elist[count].name, event, strlen(event)); + strncpy(elist[count].name, event, LTTNG_SYMBOL_NAME_LEN); + elist[count].name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0'; count++; } *events = elist; - - DBG("Kernel list events done (%ld events)", count); - + DBG("Kernel list events done (%zu events)", count); +end: + fclose(fp); /* closes both fp and fd */ return count; +error_fp: + close(fd); error: return -1; }