mirror of https://github.com/CGAL/cgal
Fix a use-after-free
In an `unordered_map`, any insertion can invalidate iterators, when the load factor triggers a rehashing.
This commit is contained in:
parent
54a992ff9f
commit
f438a2ed3a
|
|
@ -5170,6 +5170,7 @@ remove_3D(Vertex_handle v, VertexRemover& remover)
|
|||
}
|
||||
|
||||
typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit;
|
||||
outer_map.erase(oit);
|
||||
Cell_handle o_ch = o_vt_f_pair.second.first;
|
||||
unsigned int o_i = o_vt_f_pair.second.second;
|
||||
|
||||
|
|
@ -5215,7 +5216,6 @@ remove_3D(Vertex_handle v, VertexRemover& remover)
|
|||
}
|
||||
}
|
||||
}
|
||||
outer_map.erase(oit);
|
||||
}
|
||||
tds().delete_vertex(v);
|
||||
tds().delete_cells(hole.begin(), hole.end());
|
||||
|
|
@ -6059,6 +6059,7 @@ move_if_no_collision(Vertex_handle v, const Point& p,
|
|||
}
|
||||
|
||||
typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit;
|
||||
outer_map.erase(oit);
|
||||
Cell_handle o_ch = o_vt_f_pair.second.first;
|
||||
unsigned int o_i = o_vt_f_pair.second.second;
|
||||
|
||||
|
|
@ -6105,7 +6106,6 @@ move_if_no_collision(Vertex_handle v, const Point& p,
|
|||
}
|
||||
}
|
||||
}
|
||||
outer_map.erase(oit);
|
||||
}
|
||||
|
||||
// fixing pointer
|
||||
|
|
@ -6511,6 +6511,7 @@ move_if_no_collision_and_give_new_cells(Vertex_handle v, const Point& p,
|
|||
}
|
||||
|
||||
typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit;
|
||||
outer_map.erase(oit);
|
||||
Cell_handle o_ch = o_vt_f_pair.second.first;
|
||||
unsigned int o_i = o_vt_f_pair.second.second;
|
||||
|
||||
|
|
@ -6558,7 +6559,6 @@ move_if_no_collision_and_give_new_cells(Vertex_handle v, const Point& p,
|
|||
}
|
||||
}
|
||||
}
|
||||
outer_map.erase(oit);
|
||||
}
|
||||
|
||||
// fixing pointer
|
||||
|
|
|
|||
Loading…
Reference in New Issue