From dcb02c1639c2ff05938c01eaa41286a2e2f8d698 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sun, 20 Jan 2019 20:04:13 +0100
Subject: [PATCH] apps/kcapi-hasher.c: fix build with gcc 8.2.x

Fixes:
 - http://autobuild.buildroot.org/results/8355bc42238e885f7f11ed3d9d37fc55ebdead2b

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: https://github.com/smuellerDD/libkcapi/pull/76]
---
 apps/kcapi-hasher.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/apps/kcapi-hasher.c b/apps/kcapi-hasher.c
index d6be685..7172b12 100644
--- a/apps/kcapi-hasher.c
+++ b/apps/kcapi-hasher.c
@@ -357,16 +357,20 @@ out:
 }
 
 /*
- * GCC v8.1.0 introduced -Wstringop-truncation but it is not smart enough to
- * find that cursor string will be NULL-terminated after all paste() calls and
- * warns with:
+ * GCC v8.1.0 introduced -Wstringop-truncation and GCC v8.2.0 introduced
+ * -Wstringop-overflow but it is not smart enough to find that cursor string
+ * will be NULL-terminated after all paste() calls and warns with:
  * error: 'strncpy' destination unchanged after copying no bytes [-Werror=stringop-truncation]
  * error: 'strncpy' output truncated before terminating nul copying 5 bytes from a string of the same length [-Werror=stringop-truncation]
+ * error: 'strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
  */
 #pragma GCC diagnostic push
 #if GCC_VERSION >= 80100
 #pragma GCC diagnostic ignored "-Wstringop-truncation"
 #endif
+#if GCC_VERSION >= 80200
+#pragma GCC diagnostic ignored "-Wstringop-overflow"
+#endif
 static char *paste(char *dst, const char *src, size_t size)
 {
 	strncpy(dst, src, size);
@@ -417,7 +421,7 @@ static char *get_hmac_file(const char *filename, const char *checkdir)
 	strncpy(cursor, "\0", 1);
 	return checkfile;
 }
-#pragma GCC diagnostic pop /* -Wstringop-truncation */
+#pragma GCC diagnostic pop /* -Wstringop-truncation -Wstringop-overflow */
 
 static int hash_files(const struct hash_params *params,
 		      char *filenames[], uint32_t files,
-- 
2.14.1

