From dc50fbbb9bc3d22cbf27f5bc4f1817c8166c5f41 Mon Sep 17 00:00:00 2001 From: Kyle Bayes Date: Wed, 19 Mar 2025 04:20:06 -0700 Subject: [PATCH] Add safeguard if n is invalid in GJK. PiperOrigin-RevId: 738340065 Change-Id: I2288eb731621e5b84dcc0f078d8dbd84dca94cd4 --- src/engine/engine_collision_gjk.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/engine/engine_collision_gjk.c b/src/engine/engine_collision_gjk.c index d54f1d5e..80761c7a 100644 --- a/src/engine/engine_collision_gjk.c +++ b/src/engine/engine_collision_gjk.c @@ -240,6 +240,15 @@ static void gjk(mjCCDStatus* status, mjCCDObj* obj1, mjCCDObj* obj2) { lambda[n++] = lambda[i]; } + // SHOULD NOT OCCUR + if (n < 1) { + status->gjk_iterations = k; + status->nsimplex = 0; + status->nx = 0; + status->dist = mjMAXVAL; + return; + } + // get the next iteration of x_k mjtNum x_next[3]; lincomb(x_next, lambda, n, simplex[0].vert, simplex[1].vert,