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:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-09-19 17:54:09 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-09-19 17:55:14 +0300
commit931d280af78877d5d86a6473e4963d4f9edb8aeb (patch)
tree6ca291645205d563a289b5f0f3cee06c3c4d7b99 /source/blender/blenkernel/intern/armature.c
parent1bf03841110c77cd39d40be9e028b6c823f16618 (diff)
Fix buffer overflow using bbone segment interpolation
Do proper segment clamping to a proper value. Thanks Brecht for pair-coding!
Diffstat (limited to 'source/blender/blenkernel/intern/armature.c')
-rw-r--r--source/blender/blenkernel/intern/armature.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index d74c8e6d258..3215b3d7b40 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -1257,9 +1257,9 @@ void BKE_pchan_bbone_deform_segment_index(const bPoseChannel *pchan,
float pre_blend = pos * (float)segments;
int index = (int)floorf(pre_blend);
- float blend = pre_blend - index;
+ CLAMP(index, 0, segments - 1);
- CLAMP(index, 0, segments);
+ float blend = pre_blend - index;
CLAMP(blend, 0.0f, 1.0f);
*r_index = index;