From 92fb2db0a36e5311b287d440116af3e1555bc2d5 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Wed, 12 May 2021 20:14:15 +0000 Subject: [PATCH] fix some msan (memory sanitizer) issues --- Extras/Serialize/BulletFileLoader/bFile.cpp | 1 + Extras/Serialize/BulletFileLoader/btBulletFile.cpp | 1 + examples/Utils/b3BulletDefaultFileIO.h | 3 +++ .../CollisionDispatch/btManifoldResult.cpp | 2 -- .../NarrowPhaseCollision/btManifoldPoint.h | 10 +++++++++- src/LinearMath/btAlignedAllocator.cpp | 7 ++++++- 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Extras/Serialize/BulletFileLoader/bFile.cpp b/Extras/Serialize/BulletFileLoader/bFile.cpp index 5c8f54fe3..107298718 100644 --- a/Extras/Serialize/BulletFileLoader/bFile.cpp +++ b/Extras/Serialize/BulletFileLoader/bFile.cpp @@ -75,6 +75,7 @@ bFile::bFile(const char *filename, const char headerString[7]) fseek(fp, 0L, SEEK_SET); mFileBuffer = (char *)malloc(mFileLen + 1); + memset(mFileBuffer, 0, mFileLen+1); size_t bytesRead; bytesRead = fread(mFileBuffer, mFileLen, 1, fp); diff --git a/Extras/Serialize/BulletFileLoader/btBulletFile.cpp b/Extras/Serialize/BulletFileLoader/btBulletFile.cpp index 1f855f41f..74f27c4a5 100644 --- a/Extras/Serialize/BulletFileLoader/btBulletFile.cpp +++ b/Extras/Serialize/BulletFileLoader/btBulletFile.cpp @@ -333,6 +333,7 @@ void btBulletFile::parse(int verboseMode) if (m_DnaCopy) delete m_DnaCopy; m_DnaCopy = (char*)btAlignedAlloc(sBulletDNAlen64, 16); + memset(m_DnaCopy, 0, sBulletDNAlen64); memcpy(m_DnaCopy, sBulletDNAstr64, sBulletDNAlen64); parseInternal(verboseMode, m_DnaCopy, sBulletDNAlen64); } diff --git a/examples/Utils/b3BulletDefaultFileIO.h b/examples/Utils/b3BulletDefaultFileIO.h index fa972de01..92ff34ee1 100644 --- a/examples/Utils/b3BulletDefaultFileIO.h +++ b/examples/Utils/b3BulletDefaultFileIO.h @@ -6,6 +6,8 @@ #include "b3ResourcePath.h" #include +#include + #define B3_FILEIO_MAX_FILES 1024 struct b3BulletDefaultFileIO : public CommonFileIOInterface @@ -155,6 +157,7 @@ struct b3BulletDefaultFileIO : public CommonFileIOInterface FILE* f = m_fileHandles[fileHandle]; if (f) { + memset(destBuffer, 0, numBytes); char* txt = ::fgets(destBuffer, numBytes, m_fileHandles[fileHandle]); for (int i=0;i #ifdef BT_DEBUG_MEMORY_ALLOCATIONS int gNumAlignedAllocs = 0; @@ -23,7 +24,9 @@ int gTotalBytesAlignedAllocs = 0; //detect memory leaks static void *btAllocDefault(size_t size) { - return malloc(size); + char* data = (char*) malloc(size); + memset(data,0,size);//keep msan happy + return data; } static void btFreeDefault(void *ptr) @@ -73,6 +76,8 @@ static inline void *btAlignedAllocDefault(size_t size, int alignment) { ret = (void *)(real); } + //keep msan happy + memset((char*) ret, 0, size); return (ret); }