diff --git a/src/coreclr/debug/daccess/request.cpp b/src/coreclr/debug/daccess/request.cpp index 34ce7f2aa8827d..fee1cadacbe8a1 100644 --- a/src/coreclr/debug/daccess/request.cpp +++ b/src/coreclr/debug/daccess/request.cpp @@ -1571,12 +1571,18 @@ ClrDataAccess::GetObjectStringData(CLRDATA_ADDRESS obj, unsigned int count, _Ino count = needed; TADDR pszStr = TO_TADDR(obj)+offsetof(StringObject, m_FirstChar); - hr = m_pTarget->ReadVirtual(pszStr, (PBYTE)stringData, count * sizeof(WCHAR), &needed); + ULONG32 bytesRead; + hr = m_pTarget->ReadVirtual(pszStr, (PBYTE)stringData, count * sizeof(WCHAR), &bytesRead); + needed = bytesRead / sizeof(WCHAR); if (SUCCEEDED(hr)) - stringData[count - 1] = W('\0'); + { + stringData[needed - 1] = W('\0'); + } else + { stringData[0] = W('\0'); + } } else {