From c3ef76cdae5dbe3088de71a4f7d93a33d592d3d5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Fri, 1 Jun 2018 12:54:00 -0400 Subject: [PATCH] Silence strncpy warning emitted by GCC 8 in lttng_strncpy() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit GCC 8 warns if the destination's length is passed to strncpy, since that could cause the destination to not be NULL-terminated. This is not a concern for the lttng_strncpy since it checks that the source must not be truncated. Therefore, it is safe to simply use strcpy(). Signed-off-by: Jérémie Galarneau --- src/common/macros.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/common/macros.h b/src/common/macros.h index 7eaf27cdf..28c21d5b8 100644 --- a/src/common/macros.h +++ b/src/common/macros.h @@ -106,17 +106,11 @@ void *zmalloc(size_t len) static inline int lttng_strncpy(char *dst, const char *src, size_t dst_len) { - if (lttng_strnlen(src, dst_len) == dst_len) { + if (lttng_strnlen(src, dst_len) >= dst_len) { /* Fail since copying would result in truncation. */ return -1; } - strncpy(dst, src, dst_len); - /* - * Be extra careful and put final \0 at the end after strncpy(), - * even though we checked the length before. This makes Coverity - * happy. - */ - dst[dst_len - 1] = '\0'; + strcpy(dst, src); return 0; } -- 2.34.1