From 0d1cbd66976c93aac451c797606c01ae87ca1ec1 Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Fri, 11 Nov 2022 11:55:31 +0000 Subject: [PATCH] SWDEV-342014 - Handle partial fills in hipDeviceGetName Change-Id: Ic9f1743c6a8439d88acc6dd1ed496013d551f6ec [ROCm/clr commit: 8f4e94d53239af8b32dd4ae740a40121a3c93531] --- projects/clr/hipamd/src/hip_device.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/projects/clr/hipamd/src/hip_device.cpp b/projects/clr/hipamd/src/hip_device.cpp index b4cf8dd22a..02d2e9aaf4 100644 --- a/projects/clr/hipamd/src/hip_device.cpp +++ b/projects/clr/hipamd/src/hip_device.cpp @@ -216,13 +216,11 @@ hipError_t hipDeviceGetName(char *name, int len, hipDevice_t device) { const auto& info = deviceHandle->info(); const auto nameLen = ::strlen(info.boardName_); - // Make sure that the size of `dest` is big enough to hold `src` including + // Only copy partial name if size of `dest` is smaller than size of `src` including // trailing zero byte - if (nameLen <= 0) { - HIP_RETURN(hipErrorInvalidValue); - } - - ::memcpy(name, info.boardName_, (nameLen + 1)); + auto memcpySize = (len <= (nameLen + 1) ? (len - 1) : nameLen); + ::memcpy(name, info.boardName_, memcpySize); + name[memcpySize] = '\0'; HIP_RETURN(hipSuccess); }