forked from OSchip/llvm-project
[DWARFYAML][debug_info] Fix array index out of bounds error
This patch is trying to fix the array index out of bounds error. I observed it in (https://reviews.llvm.org/harbormaster/unit/view/99638/). Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D82139
This commit is contained in:
parent
c721bc081e
commit
6770349592
|
@ -46,6 +46,8 @@ static unsigned getRefSize(const DWARFYAML::Unit &Unit) {
|
||||||
template <typename T> void DWARFYAML::VisitorImpl<T>::traverseDebugInfo() {
|
template <typename T> void DWARFYAML::VisitorImpl<T>::traverseDebugInfo() {
|
||||||
for (auto &Unit : DebugInfo.CompileUnits) {
|
for (auto &Unit : DebugInfo.CompileUnits) {
|
||||||
onStartCompileUnit(Unit);
|
onStartCompileUnit(Unit);
|
||||||
|
if (Unit.Entries.empty())
|
||||||
|
continue;
|
||||||
auto FirstAbbrevCode = Unit.Entries[0].AbbrCode;
|
auto FirstAbbrevCode = Unit.Entries[0].AbbrCode;
|
||||||
|
|
||||||
for (auto &Entry : Unit.Entries) {
|
for (auto &Entry : Unit.Entries) {
|
||||||
|
|
|
@ -548,3 +548,30 @@ DWARF:
|
||||||
Entries:
|
Entries:
|
||||||
- AbbrCode: 0
|
- AbbrCode: 0
|
||||||
Values: []
|
Values: []
|
||||||
|
|
||||||
|
## h) Test that yaml2obj doesn't crash when the 'Entries' of a compilation unit is empty.
|
||||||
|
|
||||||
|
# RUN: yaml2obj --docnum=8 %s -o %t8.o
|
||||||
|
# RUN: llvm-readelf --hex-dump=.debug_info %t8.o | \
|
||||||
|
# RUN: FileCheck %s --check-prefix=EMPTY-ENTRIES --match-full-lines
|
||||||
|
|
||||||
|
# EMPTY-ENTRIES: Hex dump of section '.debug_info':
|
||||||
|
# EMPTY-ENTRIES-NEXT: 0x00000000 34120000 05000204 34120000 4.......4...
|
||||||
|
# EMPTY-ENTRIES-EMPTY:
|
||||||
|
## ^- 'Entries' is empty
|
||||||
|
|
||||||
|
--- !ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_EXEC
|
||||||
|
Machine: EM_X86_64
|
||||||
|
DWARF:
|
||||||
|
debug_info:
|
||||||
|
- Length:
|
||||||
|
TotalLength: 0x1234
|
||||||
|
Version: 5
|
||||||
|
UnitType: DW_UT_type
|
||||||
|
AbbrOffset: 0x1234
|
||||||
|
AddrSize: 4
|
||||||
|
Entries: []
|
||||||
|
|
Loading…
Reference in New Issue