Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-01-03 11:53:30 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-01-03 11:53:30 +0400
commit7b212b3bd0b583fc45ddaa8e500f482659ad1bab (patch)
treef2276d3e96b508873d1a60107806ef1539524412 /source
parent84f229536afceb78e10ebc7f5ff443eb01692188 (diff)
fix [#33689] Crash with decimate modifier
in fact a more general bug in BM_face_create_ngon() where edges containing the same vertex multiple times were not accounted for.
Diffstat (limited to 'source')
-rw-r--r--source/blender/bmesh/intern/bmesh_construct.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_construct.c b/source/blender/bmesh/intern/bmesh_construct.c
index 468a80f44f8..53ce5728879 100644
--- a/source/blender/bmesh/intern/bmesh_construct.c
+++ b/source/blender/bmesh/intern/bmesh_construct.c
@@ -215,6 +215,11 @@ BMFace *BM_face_create_ngon(BMesh *bm, BMVert *v1, BMVert *v2, BMEdge **edges, i
do {
BMEdge *e2 = e;
+ /* vertex array is (len + 1) */
+ if (UNLIKELY(v_index > len)) {
+ goto err; /* vertex in loop twice */
+ }
+
verts[v_index++] = v;
edges2[e2_index++] = e;