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
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-02-23 00:33:32 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-02-23 00:34:20 +0300
commit765b842f9520843183bf0a3cdcd071f152bbbf9e (patch)
tree5a8947f06c47c6a0023b2cc4b93d8af1af494fdb /source/blender/blenkernel/intern/CCGSubSurf.c
parent0f1ffd4792acb0d93f12bad593ae8ee0054dcc5b (diff)
Subsurf: missing NULL checks on free
Diffstat (limited to 'source/blender/blenkernel/intern/CCGSubSurf.c')
-rw-r--r--source/blender/blenkernel/intern/CCGSubSurf.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c
index 651979cd5cd..cadca6b2623 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf.c
@@ -579,8 +579,14 @@ static float *_vert_getNo(CCGVert *v, int lvl, int dataSize, int normalDataOffse
static void _vert_free(CCGVert *v, CCGSubSurf *ss)
{
- CCGSUBSURF_free(ss, v->edges);
- CCGSUBSURF_free(ss, v->faces);
+ if (v->edges) {
+ CCGSUBSURF_free(ss, v->edges);
+ }
+
+ if (v->faces) {
+ CCGSUBSURF_free(ss, v->faces);
+ }
+
CCGSUBSURF_free(ss, v);
}
@@ -669,7 +675,10 @@ static void *_edge_getCoVert(CCGEdge *e, CCGVert *v, int lvl, int x, int dataSiz
static void _edge_free(CCGEdge *e, CCGSubSurf *ss)
{
- CCGSUBSURF_free(ss, e->faces);
+ if (e->faces) {
+ CCGSUBSURF_free(ss, e->faces);
+ }
+
CCGSUBSURF_free(ss, e);
}
static void _edge_unlinkMarkAndFree(CCGEdge *e, CCGSubSurf *ss)