From 90cbaceca53a93d119177828c90d7042aa6f3b65 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Sun, 23 May 2021 14:39:29 +0200 Subject: [PATCH] MISC: Fix the LKT_OUTPUT macro & handle corner cases with safe_strncpy --- src/base/common.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/base/common.c b/src/base/common.c index 45d3714e..814561f1 100644 --- a/src/base/common.c +++ b/src/base/common.c @@ -115,7 +115,7 @@ ___lkt_print(const char *section, const char *format, ...) } ssize_t count = - safe_snprintf(line, LKT_MESSAGE_MAX, " [%02d:%02d:%02d] OUTPUT: %s\n", hour, min, sec, section, format); + safe_snprintf(line, LKT_MESSAGE_MAX, " [%02d:%02d:%02d] %-10s %s\n", hour, min, sec, section, format); /* Check for overflow */ if (count >= LKT_MESSAGE_MAX - 1) { line[LKT_MESSAGE_MAX - 1] = '\0'; @@ -277,6 +277,15 @@ long_length(long integer) char * safe_strncpy(char *dest, const char *src, size_t n) { + /* Edge cases */ + if (src == NULL && n > 0) { + dest[0] = '\0'; + return dest; + } else if (n == 0) { + return dest; + } + + /* Regular case */ char *ret = strncpy(dest, src, n); dest[n - 1] = '\0'; return ret; -- GitLab