From 0cef325b07b18fff9da30f9a4b838ae2f617e2f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=C3=A1nchez?= Date: Mon, 31 Jul 2023 19:18:45 +0000 Subject: [PATCH] Fix another UB access. --- Eigen/src/Core/SolveTriangular.h | 5 +++++ Eigen/src/Core/products/TriangularMatrixMatrix.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Eigen/src/Core/SolveTriangular.h b/Eigen/src/Core/SolveTriangular.h index 71d6f8539..23df5082a 100644 --- a/Eigen/src/Core/SolveTriangular.h +++ b/Eigen/src/Core/SolveTriangular.h @@ -97,6 +97,11 @@ struct triangular_solver_selector typedef internal::gemm_blocking_space<(Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar, Rhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxRowsAtCompileTime,4> BlockingType; + // Nothing to solve. + if (actualLhs.size() == 0 || rhs.size() == 0) { + return; + } + BlockingType blocking(rhs.rows(), rhs.cols(), size, 1, false); triangular_solve_matrix // Empty product, return early. Otherwise, we get `nullptr` use errors below when we try to access // coeffRef(0,0). - if (a_lhs.size() == 0 || a_rhs.size() == 0) { + if (lhs.size() == 0 || rhs.size() == 0) { return; }