summaryrefslogtreecommitdiffstats
path: root/external/pdfium/ubsan.patch
blob: 8610e24f2828ae9d19492b77e55826bceecf8c09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
--- core/fxcrt/string_data_template.cpp
+++ core/fxcrt/string_data_template.cpp
@@ -82,7 +82,8 @@ void StringDataTemplate<CharType>::CopyContentsAt(size_t offset,
   ASSERT(nLen >= 0);
   ASSERT(offset + nLen <= m_nAllocLength);
 
-  memcpy(m_String + offset, pStr, nLen * sizeof(CharType));
+  if (nLen != 0)
+    memcpy(m_String + offset, pStr, nLen * sizeof(CharType));
   m_String[offset + nLen] = 0;
 }
 
--- core/fxge/cfx_glyphcache.cpp
+++ core/fxge/cfx_glyphcache.cpp
@@ -183,7 +183,8 @@ std::unique_ptr<CFX_GlyphBitmap> CFX_GlyphCache::RenderGlyph(
       }
     }
   } else {
-    memset(pDestBuf, 0, dest_pitch * bmheight);
+    if (dest_pitch != 0 && bmheight != 0)
+      memset(pDestBuf, 0, dest_pitch * bmheight);
     int rowbytes = std::min(abs(src_pitch), dest_pitch);
     for (int row = 0; row < bmheight; row++)
       memcpy(pDestBuf + row * dest_pitch, pSrcBuf + row * src_pitch, rowbytes);