]> granicus.if.org Git - llvm/commitdiff
[PDB] Initialize the std::array<ulittle32_t> used for the gsi bitmap
authorReid Kleckner <rnk@google.com>
Thu, 27 Jul 2017 23:13:05 +0000 (23:13 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 27 Jul 2017 23:13:05 +0000 (23:13 +0000)
With ASan, we would write about 512 bytes of malloc fill value to the
PDB, with some random bits ORed in here and there. Dumping the PDB would
always fail reliably.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309331 91177308-0d34-0410-b5e6-96231b3b80d8

lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp

index 473cdddd2d68fc057ed2af8c0fe8ccbc1a61e920..9b807c1653e75ee4b754f09d9a6325e3f082ad90 100644 (file)
@@ -201,6 +201,8 @@ void GSIHashTableBuilder::addSymbols(ArrayRef<CVSymbol> Symbols) {
   // Compute the three tables: the hash records in bucket and chain order, the
   // bucket presence bitmap, and the bucket chain start offsets.
   HashRecords.reserve(Symbols.size());
+  for (ulittle32_t &Word : HashBitmap)
+    Word = 0;
   for (size_t BucketIdx = 0; BucketIdx < IPHR_HASH + 1; ++BucketIdx) {
     auto &Bucket = TmpBuckets[BucketIdx];
     if (Bucket.empty())