diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-01-08 01:01:42 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-01-08 01:01:42 +0300 |
commit | ae18fd5937753d1fc420dc8aef78efacabb9750c (patch) | |
tree | b3bd4d4dba7ca65472275efc7736dc5063ebda81 /source/blender | |
parent | ef05bc5dd76771d235246c9c776637d22932c9a0 (diff) |
Fix invalid memory access in gradient brushes - could cause a crash in
MacOS.
This looks like an oldie and should not influence release, but if we do
make an 'a' build it's safe to include.
Report by Craig Jones, thanks!
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 82d71304cc5..d52b17372f7 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -662,22 +662,24 @@ void paint_brush_color_get(struct Scene *scene, struct Brush *br, bool color_cor copy_v3_v3(color, BKE_brush_secondary_color_get(scene, br)); else { if (br->flag & BRUSH_USE_GRADIENT) { + float color_gr[4]; switch (br->gradient_stroke_mode) { case BRUSH_GRADIENT_PRESSURE: - do_colorband(br->gradient, pressure, color); + do_colorband(br->gradient, pressure, color_gr); break; case BRUSH_GRADIENT_SPACING_REPEAT: { float coord = fmod(distance / br->gradient_spacing, 1.0); - do_colorband(br->gradient, coord, color); + do_colorband(br->gradient, coord, color_gr); break; } case BRUSH_GRADIENT_SPACING_CLAMP: { - do_colorband(br->gradient, distance / br->gradient_spacing, color); + do_colorband(br->gradient, distance / br->gradient_spacing, color_gr); break; } } + copy_v3_v3(color, color_gr); } else copy_v3_v3(color, BKE_brush_color_get(scene, br)); |