From 18cccafeaf0ebcc207e894b06f55673d78b0206d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 7 May 2024 14:23:27 +0200 Subject: [PATCH] Refactor: Lattice deform: prevent incrementing nullptr The lattice deform code would always call `co += 3` in a loop, even when co is `nullptr`. This is invoking undefined behaviour, and causes UBSAN warnings. Pull Request: https://projects.blender.org/blender/blender/pulls/121396 --- source/blender/blenkernel/intern/lattice_deform.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/lattice_deform.cc b/source/blender/blenkernel/intern/lattice_deform.cc index ac0328c7a9c..e6c2c97c97d 100644 --- a/source/blender/blenkernel/intern/lattice_deform.cc +++ b/source/blender/blenkernel/intern/lattice_deform.cc @@ -113,11 +113,12 @@ LatticeDeformData *BKE_lattice_deform_data_create(const Object *oblatt, const Ob for (w = 0, fw = lt->fw; w < lt->pntsw; w++, fw += lt->dw) { for (v = 0, fv = lt->fv; v < lt->pntsv; v++, fv += lt->dv) { - for (u = 0, fu = lt->fu; u < lt->pntsu; u++, co += 3, fp += 3, fu += lt->du) { + for (u = 0, fu = lt->fu; u < lt->pntsu; u++, fp += 3, fu += lt->du) { if (dl) { fp[0] = co[0] - fu; fp[1] = co[1] - fv; fp[2] = co[2] - fw; + co += 3; } else { fp[0] = bp->vec[0] - fu;