Skip to content

Commit 98d788f

Browse files
committed
fix dual_recovery out-of-bounds memory bug
1 parent 2f16417 commit 98d788f

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

include/piqp/kkt_system.tpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,10 @@ bool KKTSystem<T, I, MatrixType>::solve(const DataType& data, const Settings<T>&
353353
isize i_l = 0;
354354
isize i_u = 0;
355355
for (isize i = 0; i < data.m; i++) {
356+
while (i_l < data.n_h_l && data.h_l_idx(i_l) < i) { i_l++; }
356357
Eigen::Index idx_l = i_l < data.n_h_l ? data.h_l_idx(i_l) : -1;
357-
while (idx_l < i && i_l < data.n_h_l) { idx_l = data.h_l_idx(++i_l); }
358+
while (i_u < data.n_h_u && data.h_u_idx(i_u) < i) { i_u++; }
358359
Eigen::Index idx_u = i_u < data.n_h_u ? data.h_u_idx(i_u) : -1;
359-
while (idx_u < i && i_u < data.n_h_u) { idx_u = data.h_u_idx(++i_u); }
360360

361361
if (idx_l == i && idx_u == i) {
362362
T rz_l_bar = rhs.z_l(i) - m_z_l_inv(i) * rhs.s_l(i);

0 commit comments

Comments
 (0)