summaryrefslogtreecommitdiffstats
path: root/llvm/test/Object
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2016-10-17 22:09:25 +0000
committerKevin Enderby <enderby@apple.com>2016-10-17 22:09:25 +0000
commit2490de06f78f6c93b2963c99b819a8b7933a9c83 (patch)
tree61cb71e5c28fb28e8b911711912b3084a3af95d9 /llvm/test/Object
parentb406388e5fa92ccfd792fbabe42411d28f5ce48a (diff)
downloadbcm5719-llvm-2490de06f78f6c93b2963c99b819a8b7933a9c83.tar.gz
bcm5719-llvm-2490de06f78f6c93b2963c99b819a8b7933a9c83.zip
Next set of additional error checks for invalid Mach-O files for the
load commands that use the MachO::sub_framework_command, MachO::sub_umbrella_command, MachO::sub_library_command and MachO::sub_client_command types but are not used in llvm libObject code but used in llvm tool code. This includes the LC_SUB_FRAMEWORK, LC_SUB_UMBRELLA, LC_SUB_LIBRARY and LC_SUB_CLIENT load commands. llvm-svn: 284431
Diffstat (limited to 'llvm/test/Object')
-rw-r--r--llvm/test/Object/Inputs/macho-invalid-subclient-name_toobigbin0 -> 44 bytes
-rw-r--r--llvm/test/Object/Inputs/macho-invalid-subframe-smallbin0 -> 44 bytes
-rw-r--r--llvm/test/Object/Inputs/macho-invalid-sublibrary-name_offset-toobigbin0 -> 40 bytes
-rw-r--r--llvm/test/Object/Inputs/macho-invalid-subumbrella-offset-smallbin0 -> 40 bytes
-rw-r--r--llvm/test/Object/macho-invalid.test12
5 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/Object/Inputs/macho-invalid-subclient-name_toobig b/llvm/test/Object/Inputs/macho-invalid-subclient-name_toobig
new file mode 100644
index 00000000000..d0a8ee9eb82
--- /dev/null
+++ b/llvm/test/Object/Inputs/macho-invalid-subclient-name_toobig
Binary files differ
diff --git a/llvm/test/Object/Inputs/macho-invalid-subframe-small b/llvm/test/Object/Inputs/macho-invalid-subframe-small
new file mode 100644
index 00000000000..73497f16034
--- /dev/null
+++ b/llvm/test/Object/Inputs/macho-invalid-subframe-small
Binary files differ
diff --git a/llvm/test/Object/Inputs/macho-invalid-sublibrary-name_offset-toobig b/llvm/test/Object/Inputs/macho-invalid-sublibrary-name_offset-toobig
new file mode 100644
index 00000000000..95522e60e50
--- /dev/null
+++ b/llvm/test/Object/Inputs/macho-invalid-sublibrary-name_offset-toobig
Binary files differ
diff --git a/llvm/test/Object/Inputs/macho-invalid-subumbrella-offset-small b/llvm/test/Object/Inputs/macho-invalid-subumbrella-offset-small
new file mode 100644
index 00000000000..ac022c77cdd
--- /dev/null
+++ b/llvm/test/Object/Inputs/macho-invalid-subumbrella-offset-small
Binary files differ
diff --git a/llvm/test/Object/macho-invalid.test b/llvm/test/Object/macho-invalid.test
index 31948d8505e..d9af43933ab 100644
--- a/llvm/test/Object/macho-invalid.test
+++ b/llvm/test/Object/macho-invalid.test
@@ -355,3 +355,15 @@ INVALID-LINKOPT-BAD-SIZE: macho-invalid-linkopt-bad-size': truncated or malforme
RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-linkopt-bad-count 2>&1 | FileCheck -check-prefix INVALID-LINKOPT-BAD-COUNT %s
INVALID-LINKOPT-BAD-COUNT: macho-invalid-linkopt-bad-count': truncated or malformed object (load command 0 LC_LINKER_OPTION string count 3 does not match number of strings)
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-subframe-small 2>&1 | FileCheck -check-prefix INVALID-SUBFRAME-SMALL %s
+INVALID-SUBFRAME-SMALL: macho-invalid-subframe-small': truncated or malformed object (load command 0 LC_SUB_FRAMEWORK cmdsize too small)
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-subumbrella-offset-small 2>&1 | FileCheck -check-prefix INVALID-SUBUMBRELLA-OFFSET-SMALL %s
+INVALID-SUBUMBRELLA-OFFSET-SMALL: macho-invalid-subumbrella-offset-small': truncated or malformed object (load command 0 LC_SUB_UMBRELLA sub_umbrella.offset field too small, not past the end of the sub_umbrella_command)
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-sublibrary-name_offset-toobig 2>&1 | FileCheck -check-prefix INVALID-SUBLIB-NAME_OFFSET-TOOBIG %s
+INVALID-SUBLIB-NAME_OFFSET-TOOBIG: macho-invalid-sublibrary-name_offset-toobig': truncated or malformed object (load command 0 LC_SUB_LIBRARY sub_library.offset field extends past the end of the load command)
+
+RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-subclient-name_toobig 2>&1 | FileCheck -check-prefix INVALID-SUBCLIENT-NAME-TOOBIG %s
+INVALID-SUBCLIENT-NAME-TOOBIG: macho-invalid-subclient-name_toobig': truncated or malformed object (load command 0 LC_SUB_CLIENT client name extends past the end of the load command)
OpenPOWER on IntegriCloud