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:
authorGermano Cavalcante <germano.costa@ig.com.br>2021-11-03 16:21:56 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2021-11-03 16:22:36 +0300
commitf81190f85f65b292a0f0dfaa0a8d5b0f7fd72c58 (patch)
tree4407fa10e7047f76a0374a23e4c45d34c4d7478c /source/blender/editors/gpencil/gpencil_paint.c
parent42d0107ee5802d3e473c7af8880021078e6d13e3 (diff)
Fix T92760: Crash erasing GPencil when occlusion test is enabled
`pt0` was read when `NULL` and `is_occluded_pt1` could be read even if it is not initialized.
Diffstat (limited to 'source/blender/editors/gpencil/gpencil_paint.c')
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 070470b3734..3e9f22f25d3 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1582,10 +1582,12 @@ static void gpencil_stroke_eraser_dostroke(tGPsdata *p,
*/
if (gpencil_stroke_inside_circle(mval, radius, pc0[0], pc0[1], pc2[0], pc2[1])) {
- bool is_occluded_pt0, is_occluded_pt1, is_occluded_pt2 = true;
- is_occluded_pt0 = (pt0 && ((pt0->flag & GP_SPOINT_TEMP_TAG) != 0)) ?
- ((pt0->flag & GP_SPOINT_TEMP_TAG2) != 0) :
- gpencil_stroke_eraser_is_occluded(p, gpl, pt0, pc0[0], pc0[1]);
+ bool is_occluded_pt0 = true, is_occluded_pt1 = true, is_occluded_pt2 = true;
+ if (pt0) {
+ is_occluded_pt0 = ((pt0->flag & GP_SPOINT_TEMP_TAG) != 0) ?
+ ((pt0->flag & GP_SPOINT_TEMP_TAG2) != 0) :
+ gpencil_stroke_eraser_is_occluded(p, gpl, pt0, pc0[0], pc0[1]);
+ }
if (is_occluded_pt0) {
is_occluded_pt1 = ((pt1->flag & GP_SPOINT_TEMP_TAG) != 0) ?
((pt1->flag & GP_SPOINT_TEMP_TAG2) != 0) :