Fix GCC warning regarding strncpy in CPU info

strlen(src) should not be used as the length in strncpy. Use memcpy
since we know the length of the string, and ensure that we
NULL-terminate regardless of length

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I21cc6d106510c69464e7ac9d3fc7da3a1e6d1a68


[ROCm/ROCR-Runtime commit: 04f6b9e16b]
このコミットが含まれているのは:
Kent Russell
2020-08-13 11:01:21 -04:00
コミット 0c1420ef32
+4 -7
ファイルの表示
@@ -879,13 +879,10 @@ static HSAKMT_STATUS topology_parse_cpuinfo(struct proc_cpuinfo *cpuinfo,
if (!strncmp("model name", read_buf, sizeof("model name") - 1)) {
p = strchr(read_buf, ':');
p += 2; /* remove ": " */
p_len = strlen(p);
if (p_len < HSA_PUBLIC_NAME_SIZE) {
/* -1 to remove \n from p */
strncpy(cpuinfo[proc].model_name, p, p_len - 1);
cpuinfo[proc].model_name[p_len - 1] = '\0';
} else
strncpy(cpuinfo[proc].model_name, p, HSA_PUBLIC_NAME_SIZE);
p_len = (strlen(p) > HSA_PUBLIC_NAME_SIZE ?
HSA_PUBLIC_NAME_SIZE : strlen(p));
memcpy(cpuinfo[proc].model_name, p, p_len);
cpuinfo[proc].model_name[p_len - 1] = '\0';
continue;
}