Page MenuHome

Solidify modifier - Only Rim crash in Complex mode
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 750 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 445.87

Blender Version
Broken: version: 2.83 (sub 13), branch: master, commit date: 2020-04-16 15:38, hash: rB8cb10c124efe

Short description of error
Selecting Only Rim in Solidify modifier causes crash to desktop. Modifier has to be in Complex mode. It doesn't crash with a simple plane, so it depends on geometry.


Event Timeline

Vincent Blankfield (vvv) changed the task status from Needs Triage to Confirmed.Apr 17 2020, 7:16 PM

Can confirm. Introduced in 35b1cc806f76.

Brecht Van Lommel (brecht) triaged this task as High priority.EditedApr 17 2020, 7:51 PM
Brecht Van Lommel (brecht) changed the subtype of this task from "Report" to "Bug".

@Vincent Blankfield (vvv), for a task to be marked confirmed it needs to have appropriate tags, subscriber, priority, etc. Otherwise it can slip through.

When unsure about those, best to leave the status to Needs Triage and only leave a comment.

MOD_solidify_nonmanifold_applyModifier(ModifierData * md, const ModifierEvalContext * ctx, Mesh * mesh) Line 2015	C
applyModifier(ModifierData * md, const ModifierEvalContext * ctx, Mesh * mesh) Line 80	C
modwrap_applyModifier(ModifierData * md, const ModifierEvalContext * ctx, Mesh * me) Line 961	C
mesh_calc_modifiers(Depsgraph * depsgraph, Scene * scene, Object * ob, int useDeform, const bool need_mapping, const CustomData_MeshMasks * dataMask, const int index, const bool use_cache, const bool allow_shared_mesh, Mesh * * r_deform, Mesh * * r_final) Line 1179	C
mesh_build_data(Depsgraph * depsgraph, Scene * scene, Object * ob, const CustomData_MeshMasks * dataMask, const bool need_mapping) Line 1785	C
makeDerivedMesh(Depsgraph * depsgraph, Scene * scene, Object * ob, BMEditMesh * em, const CustomData_MeshMasks * dataMask) Line 1902	C
BKE_object_handle_data_update(Depsgraph * depsgraph, Scene * scene, Object * ob) Line 194	C
BKE_object_eval_uber_data(Depsgraph * depsgraph, Scene * scene, Object * ob) Line 385	C
[External Code]	
DEG::`anonymous namespace'::evaluate_node(const DEG::`anonymous-namespace'::DepsgraphEvalState * state, DEG::OperationNode * operation_node) Line 117	C++
DEG::`anonymous namespace'::deg_task_run_func(TaskPool * pool, void * taskdata, int thread_id) Line 129	C++
handle_local_queue(TaskThreadLocalStorage * tls, const int thread_id) Line 423	C++
task_scheduler_thread_run(void * thread_p) Line 462	C++
[External Code]

Crash happens at char bweight = medge[g->edges[k]->new_edge].bweight;, where medge is accessed out of bounds. In my test new_edge was set to 2^32-1.

ok I am pretty sure I know what is happening, should be easy to fix, will do.