From 8dd20c73e05ed2f919b174022015a60f76ac5899 Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Wed, 23 Jul 2025 12:14:37 +0200 Subject: [PATCH] mat3x3: check for finite in toString (#70) if values are NaN or inf it will crash std::format, safeguard it. --- src/math/Mat3x3.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/math/Mat3x3.cpp b/src/math/Mat3x3.cpp index fdd2aa1..a889f3b 100644 --- a/src/math/Mat3x3.cpp +++ b/src/math/Mat3x3.cpp @@ -143,6 +143,11 @@ Mat3x3 Mat3x3::copy() const { } std::string Mat3x3::toString() const { + for (const auto& m : matrix) { + if (!std::isfinite(m)) + return "[mat3x3: invalid values]"; + } + return std::format("[mat3x3: {}, {}, {}, {}, {}, {}, {}, {}, {}]", matrix.at(0), matrix.at(1), matrix.at(2), matrix.at(3), matrix.at(4), matrix.at(5), matrix.at(6), matrix.at(7), matrix.at(8)); }