diff --git a/plugins/builtin/source/content/providers/process_memory_provider.cpp b/plugins/builtin/source/content/providers/process_memory_provider.cpp index 6a7f5bfdf..7e3b4dd79 100644 --- a/plugins/builtin/source/content/providers/process_memory_provider.cpp +++ b/plugins/builtin/source/content/providers/process_memory_provider.cpp @@ -424,7 +424,16 @@ namespace hex::plugin::builtin { if (!file.isValid()) return; - for (const auto &line : wolv::util::splitString(file.readString(), "\n")) { + // procfs files don't have a defined size, so we have to just keep reading until we stop getting data + std::string data; + while (true) { + auto chunk = file.readString(0xFFFF); + if (chunk.empty()) + break; + data.append(chunk); + } + + for (const auto &line : wolv::util::splitString(data, "\n")) { const auto &split = splitString(line, " "); if (split.size() < 5) continue; @@ -434,7 +443,7 @@ namespace hex::plugin::builtin { std::string name; if (split.size() > 5) - name = combineStrings(std::vector(split.begin() + 5, split.end()), " "); + name = wolv::util::trim(combineStrings(std::vector(split.begin() + 5, split.end()), " ")); m_memoryRegions.insert({ { start, end - start }, name }); }