Index: common/lib/libc/misc/ubsan.c =================================================================== RCS file: /cvsroot/src/common/lib/libc/misc/ubsan.c,v retrieving revision 1.6 diff -p -u -r1.6 ubsan.c --- common/lib/libc/misc/ubsan.c 17 Jun 2019 18:55:37 -0000 1.6 +++ common/lib/libc/misc/ubsan.c 4 Oct 2019 09:08:04 -0000 @@ -1391,9 +1391,10 @@ DeserializeFloatOverPointer(char *pBuffe static void DeserializeFloatInlined(char *pBuffer, size_t zBUfferLength, struct CTypeDescriptor *pType, unsigned long ulNumber) { - float F; - double D; + float F = 0; + double D = 0; uint32_t U32; + size_t copyLen; ASSERT(pBuffer); ASSERT(zBUfferLength > 0); @@ -1403,7 +1404,11 @@ DeserializeFloatInlined(char *pBuffer, s switch (zDeserializeTypeWidth(pType)) { case WIDTH_64: - memcpy(&D, &ulNumber, sizeof(double)); + if (sizeof(double) >= sizeof(unsigned long)) + copyLen = sizeof ulNumber; + else + copyLen = sizeof D; + memcpy(&D, &ulNumber, copyLen); snprintf(pBuffer, zBUfferLength, "%g", D); break; case WIDTH_32: