From 09ed5dac8f84b0b262729d44cd16fb0cbaed1b32 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:39:40 +0200 Subject: [PATCH] DatasetSettings: More thorough validation for UnitCell --- common/DatasetSettings.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/common/DatasetSettings.cpp b/common/DatasetSettings.cpp index aed1e68a..c6665018 100644 --- a/common/DatasetSettings.cpp +++ b/common/DatasetSettings.cpp @@ -103,7 +103,13 @@ DatasetSettings &DatasetSettings::Compression(CompressionAlgorithm input) { } DatasetSettings &DatasetSettings::SetUnitCell(const std::optional &cell) { - if (cell && (cell->a * cell->b * cell->c * cell->alpha * cell->beta * cell->gamma != 0.0)) { + if (cell + && (cell->a > 0.0) && std::isfinite(cell->a) + && (cell->b > 0.0) && std::isfinite(cell->b) + && (cell->c > 0.0) && std::isfinite(cell->c) + && (cell->alpha > 0.0) && std::isfinite(cell->alpha) + && (cell->beta > 0.0) && std::isfinite(cell->beta) + && (cell->gamma > 0.0) && std::isfinite(cell->gamma)) { check_min("Angle alpha", cell->alpha, 0); check_min("Angle beta", cell->beta, 0);