Browse Source

Fixed solo mining

It was broken since 6.7.0
pull/2039/head
SChernykh 4 years ago
parent
commit
5c449913af
  1. 4
      src/base/net/stratum/DaemonClient.cpp
  2. 7
      src/base/tools/Cvt.cpp

4
src/base/net/stratum/DaemonClient.cpp

@ -104,7 +104,7 @@ int64_t xmrig::DaemonClient::submit(const JobResult &result)
# ifdef XMRIG_PROXY_PROJECT
memcpy(data + 78, result.nonce, 8);
# else
Cvt::toHex(data + 78, 9, reinterpret_cast<const uint8_t *>(&result.nonce), 4);
Cvt::toHex(data + 78, 8, reinterpret_cast<const uint8_t *>(&result.nonce), 4);
# endif
using namespace rapidjson;
@ -227,7 +227,7 @@ bool xmrig::DaemonClient::parseJob(const rapidjson::Value &params, int *code)
m_blockhashingblob = Json::getString(params, "blockhashing_blob");
if (m_apiVersion == API_DERO) {
const uint64_t offset = Json::getUint64(params, "reserved_offset");
Cvt::toHex(m_blockhashingblob.data() + offset * 2, kBlobReserveSize * 2 + 1, Cvt::randomBytes(kBlobReserveSize).data(), kBlobReserveSize);
Cvt::toHex(m_blockhashingblob.data() + offset * 2, kBlobReserveSize * 2, Cvt::randomBytes(kBlobReserveSize).data(), kBlobReserveSize);
}
if (blocktemplate.isNull() || !job.setBlob(m_blockhashingblob)) {

7
src/base/tools/Cvt.cpp

@ -46,7 +46,7 @@ static char *cvt_bin2hex(char *const hex, const size_t hex_maxlen, const unsigne
int b;
int c;
if (bin_len >= SIZE_MAX / 2 || hex_maxlen <= bin_len * 2U) {
if (bin_len >= SIZE_MAX / 2 || hex_maxlen < bin_len * 2U) {
return nullptr; /* LCOV_EXCL_LINE */
}
@ -60,7 +60,10 @@ static char *cvt_bin2hex(char *const hex, const size_t hex_maxlen, const unsigne
hex[i * 2U + 1U] = (char) x;
i++;
}
hex[i * 2U] = 0U;
if (i * 2U < hex_maxlen) {
hex[i * 2U] = 0U;
}
return hex;
}

Loading…
Cancel
Save