From f4cedd7b6362c12df84ea4db9d845b797a3cc53b Mon Sep 17 00:00:00 2001 From: XMRig Date: Thu, 19 Dec 2019 03:49:32 +0700 Subject: [PATCH] Fixed MsrItem serialization. --- src/crypto/rx/msr/MsrItem.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/crypto/rx/msr/MsrItem.cpp b/src/crypto/rx/msr/MsrItem.cpp index 3f70b8b6..23cf5dc0 100644 --- a/src/crypto/rx/msr/MsrItem.cpp +++ b/src/crypto/rx/msr/MsrItem.cpp @@ -44,8 +44,8 @@ xmrig::MsrItem::MsrItem(const rapidjson::Value &value) } m_reg = strtoul(kv[0], nullptr, 0); - m_value = strtoul(kv[1], nullptr, 0); - m_mask = (kv.size() > 2) ? strtoul(kv[2], nullptr, 0) : kNoMask; + m_value = strtoull(kv[1], nullptr, 0); + m_mask = (kv.size() > 2) ? strtoull(kv[2], nullptr, 0) : kNoMask; } @@ -57,10 +57,16 @@ rapidjson::Value xmrig::MsrItem::toJSON(rapidjson::Document &doc) const xmrig::String xmrig::MsrItem::toString() const { - constexpr size_t size = 32; + constexpr size_t size = 48; auto buf = new char[size](); - snprintf(buf, size, "0x%" PRIx32 ":0x%" PRIx64, m_reg, m_value); + + if (m_mask != kNoMask) { + snprintf(buf, size, "0x%" PRIx32 ":0x%" PRIx64 ":0x%" PRIx64, m_reg, m_value, m_mask); + } + else { + snprintf(buf, size, "0x%" PRIx32 ":0x%" PRIx64, m_reg, m_value); + } return buf; }