[PATCH] D23143: pdbdump: Fix crash bug.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 3 16:25:15 PDT 2016
ruiu created this revision.
ruiu added a reviewer: zturner.
ruiu added a subscriber: llvm-commits.
pdbdump calls DbiStreamBuilder::commit through PDBFileBuilder::commit
without calling DbiStreamBuilder::finalize. Because `finalize` initializes
`Header` member, `Header` remained nullptr which caused a crash bug.
https://reviews.llvm.org/D23143
Files:
include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h
lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
test/DebugInfo/PDB/pdbdump-fpm.test
test/DebugInfo/PDB/pdbdump-readwrite.test
Index: test/DebugInfo/PDB/pdbdump-readwrite.test
===================================================================
--- test/DebugInfo/PDB/pdbdump-readwrite.test
+++ test/DebugInfo/PDB/pdbdump-readwrite.test
@@ -2,8 +2,3 @@
; RUN: -dbi-stream -pdb-stream -stream-directory -stream-metadata \
; RUN: %p/Inputs/empty.pdb > %t.1
; RUN: llvm-pdbdump yaml2pdb -pdb=%t.2 %t.1
-; RUN: llvm-pdbdump raw -headers %t.2 | FileCheck %p
-
-; CHECK: foo
-
-
Index: lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
===================================================================
--- lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
+++ lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
@@ -249,7 +249,10 @@
}
Error DbiStreamBuilder::commit(const msf::MSFLayout &Layout,
- const msf::WritableStream &Buffer) const {
+ const msf::WritableStream &Buffer) {
+ if (auto EC = finalize())
+ return EC;
+
auto InfoS =
WritableMappedBlockStream::createIndexedStream(Layout, Buffer, StreamDBI);
Index: include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h
===================================================================
--- include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h
+++ include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h
@@ -49,7 +49,7 @@
Expected<std::unique_ptr<DbiStream>> build(PDBFile &File,
const msf::WritableStream &Buffer);
Error commit(const msf::MSFLayout &Layout,
- const msf::WritableStream &Buffer) const;
+ const msf::WritableStream &Buffer);
private:
Error finalize();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23143.66731.patch
Type: text/x-patch
Size: 1626 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160803/1c62ed73/attachment.bin>
More information about the llvm-commits
mailing list