Make sure that the buffer string is properly initialized and that the new line at the end is removed. Fixes: defe053 (trace-cruncher: Add generic methods for printing) SignedFixes: -off-by: Yordan Karadzhov (VMware) <y.karadz@xxxxxxxxx> --- src/ftracepy-utils.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ftracepy-utils.c b/src/ftracepy-utils.c index 58f543a..7b1ff1b 100644 --- a/src/ftracepy-utils.c +++ b/src/ftracepy-utils.c @@ -384,10 +384,16 @@ static bool init_print_seq(void) return true; } +static inline void trim_new_line(char *val) +{ + if (val[strlen(val) - 1] == '\n') + val[strlen(val) - 1] = '\0'; +} + static char *get_comm_from_pid(int pid) { char *comm_file, *comm = NULL; - char buff[PATH_MAX]; + char buff[PATH_MAX] = {0}; int fd, r; if (asprintf(&comm_file, "/proc/%i/comm", pid) <= 0) { @@ -409,6 +415,7 @@ static char *get_comm_from_pid(int pid) if (r <= 0) return NULL; + trim_new_line(buff); comm = strdup(buff); if (!comm) MEM_ERROR; @@ -654,11 +661,6 @@ static int read_from_file(struct tracefs_instance *instance, return size; } -static inline void trim_new_line(char *val) -{ - val[strlen(val) - 1] = '\0'; -} - static bool write_to_file_and_check(struct tracefs_instance *instance, const char *file, const char *val) -- 2.30.2