From 2517d3854cd853cb55fd8f2db6082b837cfc2bb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Wed, 14 Feb 2018 10:50:14 +0100 Subject: [PATCH] printload: fix buffer overflow on NuttX The NuttX config variable CONFIG_TASK_NAME_SIZE does not include the null terminator byte, thus the buffer needs to be longer by 1 byte. --- src/modules/systemlib/printload.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/systemlib/printload.c b/src/modules/systemlib/printload.c index c3e2a8c202..f71cb18a02 100644 --- a/src/modules/systemlib/printload.c +++ b/src/modules/systemlib/printload.c @@ -175,8 +175,8 @@ void print_load_buffer(uint64_t t, char *buffer, int buffer_length, print_load_c unsigned tcb_pid = system_load.tasks[i].tcb->pid; size_t stack_size = system_load.tasks[i].tcb->adj_stack_size; ssize_t stack_free = 0; - char tcb_name[CONFIG_TASK_NAME_SIZE]; - strncpy(tcb_name, system_load.tasks[i].tcb->name, CONFIG_TASK_NAME_SIZE); + char tcb_name[CONFIG_TASK_NAME_SIZE + 1]; + strncpy(tcb_name, system_load.tasks[i].tcb->name, CONFIG_TASK_NAME_SIZE + 1); #if CONFIG_ARCH_INTERRUPTSTACK > 3