[Bf-blender-cvs] [2271b9b584a] master: Cleanup: Avoid ASAN report when converting displist to mesh

Hans Goudey noreply at git.blender.org
Mon Jun 28 23:56:38 CEST 2021


Commit: 2271b9b584ae7af25009ae0c00a55a8feac1c70c
Author: Hans Goudey
Date:   Mon Jun 28 16:56:30 2021 -0500
Branches: master
https://developer.blender.org/rB2271b9b584ae7af25009ae0c00a55a8feac1c70c

Cleanup: Avoid ASAN report when converting displist to mesh

Don't call `memcpy` with a null destination (and 0 size).

===================================================================

M	source/blender/blenkernel/intern/mesh_convert.c

===================================================================

diff --git a/source/blender/blenkernel/intern/mesh_convert.c b/source/blender/blenkernel/intern/mesh_convert.c
index 825963a2210..cfad5e1100d 100644
--- a/source/blender/blenkernel/intern/mesh_convert.c
+++ b/source/blender/blenkernel/intern/mesh_convert.c
@@ -545,10 +545,18 @@ Mesh *BKE_mesh_new_nomain_from_curve_displist(const Object *ob, const ListBase *
   mesh = BKE_mesh_new_nomain(totvert, totedge, 0, totloop, totpoly);
   mesh->runtime.cd_dirty_vert |= CD_MASK_NORMAL;
 
-  memcpy(mesh->mvert, allvert, totvert * sizeof(MVert));
-  memcpy(mesh->medge, alledge, totedge * sizeof(MEdge));
-  memcpy(mesh->mloop, allloop, totloop * sizeof(MLoop));
-  memcpy(mesh->mpoly, allpoly, totpoly * sizeof(MPoly));
+  if (totvert != 0) {
+    memcpy(mesh->mvert, allvert, totvert * sizeof(MVert));
+  }
+  if (totedge != 0) {
+    memcpy(mesh->medge, alledge, totedge * sizeof(MEdge));
+  }
+  if (totloop != 0) {
+    memcpy(mesh->mloop, allloop, totloop * sizeof(MLoop));
+  }
+  if (totpoly != 0) {
+    memcpy(mesh->mpoly, allpoly, totpoly * sizeof(MPoly));
+  }
 
   if (alluv) {
     const char *uvname = "UVMap";



More information about the Bf-blender-cvs mailing list