[all-commits] [llvm/llvm-project] bd2044: [CodeView] Call llvm::codeview::visitMemberRecordS...
Zequan Wu via All-commits
all-commits at lists.llvm.org
Wed Jun 29 17:19:13 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: bd2044c108655dc6409e2c724349219d3971b151
https://github.com/llvm/llvm-project/commit/bd2044c108655dc6409e2c724349219d3971b151
Author: Zequan Wu <zequanwu at google.com>
Date: 2022-06-29 (Wed, 29 Jun 2022)
Changed paths:
M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp
M llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp
M llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
Log Message:
-----------
[CodeView] Call llvm::codeview::visitMemberRecordStream with the deserialized CVType whose kind is FieldListRecord.
llvm::codeview::visitMemberRecordStream expects to receive an array ref that's FieldListRecord's Data not a CVType's data which has 4 more bytes preceeding. The first 2 bytes indicate the size of the FieldListRecord, and following 2 bytes is always 0x1203. Inside llvm::codeview::visitMemberRecordStream, it iterates to the data to check if first two bytes matching some type record kinds. If the size coincidentally matches one type kind, it will start parsing from there and causing crash.
More information about the All-commits
mailing list