From e953141fa938f82e0be5598b8c0b58e54601bf4c Mon Sep 17 00:00:00 2001 From: Lucas Baumann <41015240+luca3s@users.noreply.github.com> Date: Tue, 13 May 2025 23:12:06 +0200 Subject: [PATCH] Fix crash on NaN or infinite graph value (#1318) --- CHANGELOG.md | 1 + crates/eww/src/widgets/widget_definitions.rs | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fe1a61..d6c593f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ All notable changes to eww will be listed here, starting at changes since versio Attempting to index in an empty JSON string (`'""'`) is now an error. ### Fixes +- Fix crash on NaN or infinite graph value (By: luca3s) - Re-enable some scss features (By: w-lfchen) - Fix and refactor nix flake (By: w-lfchen) - Fix remove items from systray (By: vnva) diff --git a/crates/eww/src/widgets/widget_definitions.rs b/crates/eww/src/widgets/widget_definitions.rs index 226406b..e8d7607 100644 --- a/crates/eww/src/widgets/widget_definitions.rs +++ b/crates/eww/src/widgets/widget_definitions.rs @@ -1252,7 +1252,14 @@ fn build_graph(bargs: &mut BuilderArgs) -> Result { let w = super::graph::Graph::new(); def_widget!(bargs, _g, w, { // @prop value - the value, between 0 - 100 - prop(value: as_f64) { w.set_property("value", value); }, + prop(value: as_f64) { + if value.is_nan() || value.is_infinite() { + return Err(DiagError(gen_diagnostic!( + format!("Graph's value should never be NaN or infinite") + )).into()); + } + w.set_property("value", value); + }, // @prop thickness - the thickness of the line prop(thickness: as_f64) { w.set_property("thickness", thickness); }, // @prop time-range - the range of time to show