From baf86a4f4e1fc10a31fdfd741ddb918dbcb8b6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20del=20Pino?= <idelpino@iri.upc.edu> Date: Fri, 22 Apr 2022 16:32:53 +0200 Subject: [PATCH] added comprobation when using kdtree.nearestKSearch to avoid accessing out of vector --- src/kf_based_terrain_analysis.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kf_based_terrain_analysis.cpp b/src/kf_based_terrain_analysis.cpp index 521f2a3..d8ed96f 100644 --- a/src/kf_based_terrain_analysis.cpp +++ b/src/kf_based_terrain_analysis.cpp @@ -846,7 +846,7 @@ void CKf_Based_Terrain_Analysis::labelPointcloudUsingGroundModel( std::vector<int> pointIdxKNNSearch(K); std::vector<float> pointKNNSquaredDistance(K); - kdtree.nearestKSearch(point_in_sensor_frame, K, pointIdxKNNSearch, pointKNNSquaredDistance); + int num_of_references_found = kdtree.nearestKSearch(point_in_sensor_frame, K, pointIdxKNNSearch, pointKNNSquaredDistance); int best_reference_index = -1; int best_reference_index_predicting_ground = -1; @@ -856,7 +856,7 @@ void CKf_Based_Terrain_Analysis::labelPointcloudUsingGroundModel( float min_obstacle_pred_std_dev = 10000.0; float best_pred_std_dev = 10000.0; - for (int reference_iterator = 0; reference_iterator < K; ++reference_iterator) + for (int reference_iterator = 0; reference_iterator < num_of_references_found; ++reference_iterator) { pcl::PointXYZRGBNormal reference_in_sensor_frame = ground_reference_cloud_ptr->points[pointIdxKNNSearch[reference_iterator]]; -- GitLab