[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