Blob Blame History Raw
From 2f833f3868f30c27e9ad8fd75b5730267d9e17e8 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Mon, 5 Feb 2018 08:59:51 -0800
Subject: [PATCH] Fix build with gcc 8

src/topology.c:830:3: error: 'strncpy' specified bound 64 equals destination size [-Werror=stringop-truncation]
   strncpy((char *)props->AMDName, hsa_gfxip->amd_name, sizeof(props->AMDName));
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---
 src/topology.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/topology.c b/src/topology.c
index ef330af..2446e1f 100644
--- a/src/topology.c
+++ b/src/topology.c
@@ -827,7 +827,10 @@ HSAKMT_STATUS topology_sysfs_get_node_props(uint32_t node_id,
 		}
 
 		/* Retrieve the CAL name of the node */
-		strncpy((char *)props->AMDName, hsa_gfxip->amd_name, sizeof(props->AMDName));
+		/* FIXME: This could be sizeof(props->AMDName), but we need to use
+		 * sizeof(props->AMDName) - 1 to work around a bug in gcc 8.*/
+		strncpy((char *)props->AMDName, hsa_gfxip->amd_name, sizeof(props->AMDName) - 1);
+		props->AMDName[sizeof(props->AMDName) - 1] = '\0';
 		if (props->NumCPUCores) {
 			/* Is APU node */
 			ret = topology_get_cpu_model_name(props, true);
-- 
2.13.6