[PATCH] D79612: [Object] Add tests for parsing invalid .dynamic section.
Xing GUO via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 7 20:04:47 PDT 2020
Higuoxing created this revision.
Higuoxing added reviewers: jhenderson, MaskRay.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D79612
Files:
llvm/lib/Object/ELF.cpp
llvm/test/Object/elf-invalid-dynamic-section.test
Index: llvm/test/Object/elf-invalid-dynamic-section.test
===================================================================
--- /dev/null
+++ llvm/test/Object/elf-invalid-dynamic-section.test
@@ -0,0 +1,35 @@
+## Test LLVM emits a proper error message when parsing an invalid .dynamic section.
+
+# RUN: yaml2obj --docnum=1 %s -o %t1.o
+# RUN: not llvm-objdump -p %t1.o 2>&1 | FileCheck %s --check-prefix=EMPTY
+
+# EMPTY: error: '{{.*}}': invalid empty dynamic section
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_DYN
+ Machine: EM_X86_64
+Sections:
+ - Name: .dynamic
+ Type: SHT_DYNAMIC
+ Content: ""
+
+# RUN: yaml2obj --docnum=2 %s -o %t2.o
+# RUN: not llvm-objdump -p %t2.o 2>&1 | FileCheck %s --check-prefix=MALFORMED
+
+# MALFORMED: error: '{{.*}}': dynamic sections must be DT_NULL terminated
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_DYN
+ Machine: EM_X86_64
+Sections:
+ - Name: .dynamic
+ Type: SHT_DYNAMIC
+ Entries:
+ - Tag: DT_NEEDED
+ Value: 0x1
Index: llvm/lib/Object/ELF.cpp
===================================================================
--- llvm/lib/Object/ELF.cpp
+++ llvm/lib/Object/ELF.cpp
@@ -542,11 +542,9 @@
}
if (Dyn.empty())
- // TODO: this error is untested.
return createError("invalid empty dynamic section");
if (Dyn.back().d_tag != ELF::DT_NULL)
- // TODO: this error is untested.
return createError("dynamic sections must be DT_NULL terminated");
return Dyn;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79612.262807.patch
Type: text/x-patch
Size: 1555 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200508/02b8d1e4/attachment.bin>
More information about the llvm-commits
mailing list