PointCloudLibrary/pcl
Vedi su GitHubKinfu MarchingCubes writes unbounded data to hardcode sized buffer
Open
#719 aperta il 31 mag 2014
help wantedkind: bugmodule: gpuskill: cudastatus: stale
Metriche repository
- Star
- (9023 star)
- Metriche merge PR
- (Merge medio 8g 7h) (3 PR mergiate in 30 g)
Descrizione
pcl::gpu::MarchingCubes::run:
if (triangles_buffer.empty())
triangles_buffer.create(DEFAULT_TRIANGLES_BUFFER_SIZE);
DEFAULT_TRIANGLES_BUFFER_SIZE = 2 * 1000 * 1000 * POINTS_PER_TRIANGLE
marching_cubes.cu/store_point():
triangles_buffer[index] = ...; // index is dependent on how many voxels we have
I suggest changing DEFAULT_TRIANGLES_BUFFER_SIZE to WHY_WOULD_ANYONE_EVER_HAVE_MORE_TRIANGLES, that will make the out of bounds crash on the GPU much easier to find.
I also like how it starts with 2 * - that looks almost like somebody thought "hmm for some reason the code works if I make this bigger".