Skip to content

Commit d1d8c83

Browse files
committedAug 3, 2016
pdbdump: Fix crash bug.
pdbdump calls DbiStreamBuilder::commit through PDBFileBuilder::commit without calling DbiStreamBuilder::finalize. Because `finalize` initializes `Header` member, `Header` remained nullptr which caused a crash bug. Differential Revision: https://reviews.llvm.org/D23143 llvm-svn: 277681
1 parent 965827d commit d1d8c83

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed
 

‎llvm/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class DbiStreamBuilder {
4949
Expected<std::unique_ptr<DbiStream>> build(PDBFile &File,
5050
const msf::WritableStream &Buffer);
5151
Error commit(const msf::MSFLayout &Layout,
52-
const msf::WritableStream &Buffer) const;
52+
const msf::WritableStream &Buffer);
5353

5454
private:
5555
Error finalize();

‎llvm/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,10 @@ DbiStreamBuilder::build(PDBFile &File, const msf::WritableStream &Buffer) {
249249
}
250250

251251
Error DbiStreamBuilder::commit(const msf::MSFLayout &Layout,
252-
const msf::WritableStream &Buffer) const {
252+
const msf::WritableStream &Buffer) {
253+
if (auto EC = finalize())
254+
return EC;
255+
253256
auto InfoS =
254257
WritableMappedBlockStream::createIndexedStream(Layout, Buffer, StreamDBI);
255258

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
; RUN: llvm-pdbdump pdb2yaml -dbi-module-info -dbi-module-source-info \
2+
; RUN: -dbi-stream -pdb-stream -stream-directory -stream-metadata \
3+
; RUN: %p/Inputs/empty.pdb > %t.1
4+
; RUN: llvm-pdbdump yaml2pdb -pdb=%t.2 %t.1

0 commit comments

Comments
 (0)
Please sign in to comment.