Skip to content

Commit e69c5f9

Browse files
committed
Fix a crash caused by hex integer parsing. Fix #822
1 parent 62773d8 commit e69c5f9

4 files changed

Lines changed: 5 additions & 5 deletions

File tree

cli/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ int main(int argc, const char* argv[])
512512
}
513513
else if (auto loc = input.find("ts "); loc != std::string::npos)
514514
{
515-
auto thread_id = std::stoul(input.substr(loc + 3), nullptr, 10);
515+
auto thread_id = strtoul(input.substr(loc + 3).c_str(), nullptr, 10);
516516
debugger->SetActiveThread(thread_id);
517517
}
518518
else if (input == "disasm")
@@ -521,7 +521,7 @@ int main(int argc, const char* argv[])
521521
}
522522
else if (auto loc = input.find("disasm "); loc != std::string::npos)
523523
{
524-
auto count = std::stoul(input.substr(loc + 7), nullptr, 10);
524+
auto count = strtoul(input.substr(loc + 7).c_str(), nullptr, 10);
525525
if (count == 0)
526526
count = 10;
527527
DisasmDisplay(debugger, count);

core/adapters/corelliumadapter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ static intx::uint512 parseLittleEndianHexToUint512(const std::string& hex) {
444444
for (size_t i = 0; i < limit; ++i)
445445
{
446446
std::string byteStr = hex.substr(i * 2, 2);
447-
buffer[i] = static_cast<uint8_t>(std::stoul(byteStr, nullptr, 16));
447+
buffer[i] = static_cast<uint8_t>(strtoul(byteStr.c_str(), nullptr, 16));
448448
}
449449

450450
return intx::le::load<intx::uint512>(buffer);

core/adapters/esrevenadapter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ static intx::uint512 parseLittleEndianHexToUint512(const std::string& hex) {
479479
for (size_t i = 0; i < limit; ++i)
480480
{
481481
std::string byteStr = hex.substr(i * 2, 2);
482-
buffer[i] = static_cast<uint8_t>(std::stoul(byteStr, nullptr, 16));
482+
buffer[i] = static_cast<uint8_t>(strtoul(byteStr.c_str(), nullptr, 16));
483483
}
484484

485485
return intx::le::load<intx::uint512>(buffer);

core/adapters/gdbadapter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ static intx::uint512 parseLittleEndianHexToUint512(const std::string& hex) {
477477
for (size_t i = 0; i < limit; ++i)
478478
{
479479
std::string byteStr = hex.substr(i * 2, 2);
480-
buffer[i] = static_cast<uint8_t>(std::stoul(byteStr, nullptr, 16));
480+
buffer[i] = static_cast<uint8_t>(strtoul(byteStr.c_str(), nullptr, 16));
481481
}
482482

483483
return intx::le::load<intx::uint512>(buffer);

0 commit comments

Comments
 (0)