Fix crash when minipbrt::Loader::load(filename) could not open the file provided and crash with loop subdiv #10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix 1
When failing to open a file (minipbrt.cpp:4676), minipbrt would call
set_error()
prior to the creationm_filedata
allocated few lines after. This would create a crash whenset_error()
is trying to access the pointer to retrieve the filename and the error offset.Fix 2
I encountered a crash when trying to triangulate a loop subdiv. It seems that the number of points was not divided by 3 after the call to
float_vector_param
generating a crash inside theLoopSubdiv::triangle_mesh()
function which is trying to copynum_points * 3
floats fromfloat P[num_points]
tofloat trimesh->P[num_points * 3]
. I fixed the issue by dividing the number of points by 3 when creating a loop subdiv.