Silence strncpy warning emitted by GCC 8 in lttng_strncpy()
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 1 Jun 2018 16:54:00 +0000 (12:54 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 1 Jun 2018 17:02:28 +0000 (13:02 -0400)
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 <jeremie.galarneau@efficios.com>
src/common/macros.h

index 7eaf27cdf3787cbf02d5c4fc2bc48eb43632b734..28c21d5b8188ebd786d710cba5c1ceba8132154e 100644 (file)
@@ -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;
 }
 
This page took 0.026732 seconds and 5 git commands to generate.