diff options
| author | vaxerski <vaxry@vaxry.net> | 2024-05-24 20:40:15 +0200 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2024-05-24 20:40:15 +0200 |
| commit | 52684b7d90de509c66f4f9a81c54a985123315b6 (patch) | |
| tree | da5d87b1e292266523e7069a303a98b856f5f9be /src/desktop/Window.cpp | |
| parent | 4e42107d25dc47ee94da282db233f85f1e4c6bd0 (diff) | |
window: fix invalid env buffer size in getEnv
Diffstat (limited to 'src/desktop/Window.cpp')
| -rw-r--r-- | src/desktop/Window.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/desktop/Window.cpp b/src/desktop/Window.cpp index 7987c9d6..7a06aa61 100644 --- a/src/desktop/Window.cpp +++ b/src/desktop/Window.cpp @@ -1296,9 +1296,12 @@ std::unordered_map<std::string, std::string> CWindow::getEnv() { needle += 512; } + if (needle <= 1) + return {}; + std::replace(buffer.begin(), buffer.end() - 1, '\0', '\n'); - CVarList envs(std::string{buffer.data(), needle - 1}, 0, '\n', true); + CVarList envs(std::string{buffer.data(), buffer.size() - 1}, 0, '\n', true); for (auto& e : envs) { if (!e.contains('=')) |
