Merge pull request #1563 from groknull/crash-on-empty-cpuvec

Prevent segfault in getCpuFrequency
This commit is contained in:
Alex 2022-05-23 13:38:53 +02:00 committed by GitHub
commit 5e2067d51f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -94,6 +94,10 @@ std::tuple<std::vector<uint16_t>, std::string> waybar::modules::Cpu::getCpuUsage
std::tuple<float, float, float> waybar::modules::Cpu::getCpuFrequency() { std::tuple<float, float, float> waybar::modules::Cpu::getCpuFrequency() {
std::vector<float> frequencies = parseCpuFrequencies(); std::vector<float> frequencies = parseCpuFrequencies();
if (frequencies.empty())
{
return {0.f, 0.f, 0.f};
}
auto [min, max] = std::minmax_element(std::begin(frequencies), std::end(frequencies)); auto [min, max] = std::minmax_element(std::begin(frequencies), std::end(frequencies));
float avg_frequency = float avg_frequency =
std::accumulate(std::begin(frequencies), std::end(frequencies), 0.0) / frequencies.size(); std::accumulate(std::begin(frequencies), std::end(frequencies), 0.0) / frequencies.size();