From 91c9f341377ea496ca08a2eab32ba7d5b2ce0893 Mon Sep 17 00:00:00 2001 From: Yann Noutary Date: Wed, 20 Nov 2024 01:24:28 -0800 Subject: [PATCH] Add safeguard in case num_tris diverges Summary: This PR fixes adds a safeguard preventing num_tris to overflow in `MAX_TRIS`-length arrays. The update rule of `num_tris` is bounded : - max(num_tris(t)) = 2*num_tris(t-1) - num_tris(0) = 12 - t <= 6 So : - max(num_tris) = 2^6*12 - max(num_tris) = 768 Reviewed By: bottler Differential Revision: D66162573 fbshipit-source-id: e269a79c75c6cc33306986b1f1256cffbe96c730 --- pytorch3d/csrc/iou_box3d/iou_utils.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytorch3d/csrc/iou_box3d/iou_utils.cuh b/pytorch3d/csrc/iou_box3d/iou_utils.cuh index 5ad5b165..c4a1f5c9 100644 --- a/pytorch3d/csrc/iou_box3d/iou_utils.cuh +++ b/pytorch3d/csrc/iou_box3d/iou_utils.cuh @@ -728,7 +728,7 @@ __device__ inline int BoxIntersections( } } // Update the face_verts_out tris - num_tris = offset; + num_tris = min(MAX_TRIS, offset); for (int j = 0; j < num_tris; ++j) { face_verts_out[j] = tri_verts_updated[j]; }