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>2020-09-22 08:54:17 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-09-22 08:54:17 +0300
commit3cbc5dd90e3fc84dead86d2ae48176cf3beecc82 (patch)
tree64221f18732c0cec25a7e3120ae9009c2e48880d /source/blender/blenkernel/intern/object_dupli.c
parenta9dceed2a71c03303815b71a0b35724df4e632c5 (diff)
Object: check for negative index access with duplicator reading UV's
Diffstat (limited to 'source/blender/blenkernel/intern/object_dupli.c')
-rw-r--r--source/blender/blenkernel/intern/object_dupli.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/object_dupli.c b/source/blender/blenkernel/intern/object_dupli.c
index ceb744d2fe0..39d6ee2700c 100644
--- a/source/blender/blenkernel/intern/object_dupli.c
+++ b/source/blender/blenkernel/intern/object_dupli.c
@@ -1080,7 +1080,9 @@ static void make_duplis_faces(const DupliContext *ctx)
.vert_coords = vert_coords,
.has_orco = (vert_coords != NULL),
.has_uvs = (uv_idx != -1),
- .cd_loop_uv_offset = CustomData_get_n_offset(&em->bm->ldata, CD_MLOOPUV, uv_idx),
+ .cd_loop_uv_offset = (uv_idx != -1) ?
+ CustomData_get_n_offset(&em->bm->ldata, CD_MLOOPUV, uv_idx) :
+ -1,
};
make_child_duplis(ctx, &fdd, make_child_duplis_faces_from_editmesh);
}
@@ -1092,7 +1094,8 @@ static void make_duplis_faces(const DupliContext *ctx)
.mpoly = me_eval->mpoly,
.mloop = me_eval->mloop,
.mvert = me_eval->mvert,
- .mloopuv = CustomData_get_layer_n(&me_eval->ldata, CD_MLOOPUV, uv_idx),
+ .mloopuv = (uv_idx != -1) ? CustomData_get_layer_n(&me_eval->ldata, CD_MLOOPUV, uv_idx) :
+ NULL,
.orco = CustomData_get_layer(&me_eval->vdata, CD_ORCO),
};
make_child_duplis(ctx, &fdd, make_child_duplis_faces_from_mesh);