386d4f2
From 2f833f3868f30c27e9ad8fd75b5730267d9e17e8 Mon Sep 17 00:00:00 2001
386d4f2
From: Tom Stellard <tstellar@redhat.com>
386d4f2
Date: Mon, 5 Feb 2018 08:59:51 -0800
386d4f2
Subject: [PATCH] Fix build with gcc 8
386d4f2
386d4f2
src/topology.c:830:3: error: 'strncpy' specified bound 64 equals destination size [-Werror=stringop-truncation]
386d4f2
   strncpy((char *)props->AMDName, hsa_gfxip->amd_name, sizeof(props->AMDName));
386d4f2
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
386d4f2
---
386d4f2
 src/topology.c | 5 ++++-
386d4f2
 1 file changed, 4 insertions(+), 1 deletion(-)
386d4f2
386d4f2
diff --git a/src/topology.c b/src/topology.c
386d4f2
index ef330af..2446e1f 100644
386d4f2
--- a/src/topology.c
386d4f2
+++ b/src/topology.c
386d4f2
@@ -827,7 +827,10 @@ HSAKMT_STATUS topology_sysfs_get_node_props(uint32_t node_id,
386d4f2
 		}
386d4f2
 
386d4f2
 		/* Retrieve the CAL name of the node */
386d4f2
-		strncpy((char *)props->AMDName, hsa_gfxip->amd_name, sizeof(props->AMDName));
386d4f2
+		/* FIXME: This could be sizeof(props->AMDName), but we need to use
386d4f2
+		 * sizeof(props->AMDName) - 1 to work around a bug in gcc 8.*/
386d4f2
+		strncpy((char *)props->AMDName, hsa_gfxip->amd_name, sizeof(props->AMDName) - 1);
386d4f2
+		props->AMDName[sizeof(props->AMDName) - 1] = '\0';
386d4f2
 		if (props->NumCPUCores) {
386d4f2
 			/* Is APU node */
386d4f2
 			ret = topology_get_cpu_model_name(props, true);
386d4f2
-- 
386d4f2
2.13.6
386d4f2