diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-09-22 08:54:17 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-09-22 08:54:17 +0300 |
commit | 3cbc5dd90e3fc84dead86d2ae48176cf3beecc82 (patch) | |
tree | 64221f18732c0cec25a7e3120ae9009c2e48880d /source/blender/blenkernel/intern/object_dupli.c | |
parent | a9dceed2a71c03303815b71a0b35724df4e632c5 (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.c | 7 |
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); |