brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · c66a4b1 Raw
75 lines · plain
1// These test checks that llvm-objdump will not crash with malformed Mach-O2// files.  So the check line is not all that important but the bug fixes to3// make sure llvm-objdump is robust is what matters.4# RUN: not llvm-objdump --macho --objc-meta-data \5# RUN:   %p/Inputs/malformed-machos/mem-crup-0001.macho 2>&1 \6# RUN:   | FileCheck -check-prefix=m0001 %s7 8# m0001: mem-crup-0001.macho': truncated or malformed object (addr field plus size of section 2 in LC_SEGMENT_64 command 0 greater than than the segment's vmaddr plus vmsize)9 10# RUN: not llvm-objdump --macho --objc-meta-data \11# RUN:   %p/Inputs/malformed-machos/mem-crup-0006.macho 2>&1 \12# RUN:   | FileCheck -check-prefix=m0006 %s13 14# m0006: malformed-machos/mem-crup-0006.macho': truncated or malformed object (section contents at offset 4128 with a size of 176, overlaps section contents at offset 4128 with a size of 8)15 16# RUN: not llvm-objdump --macho --objc-meta-data \17# RUN:   %p/Inputs/malformed-machos/mem-crup-0010.macho 2>&1 \18# RUN:   | FileCheck -check-prefix=m0010 %s19 20# m0010: mem-crup-0010.macho': truncated or malformed object (section contents at offset 4320 with a size of 80, overlaps section contents at offset 4320 with a size of 8)21 22# RUN: not llvm-objdump --macho --objc-meta-data \23# RUN:   %p/Inputs/malformed-machos/mem-crup-0040.macho 2>&1 \24# RUN:   | FileCheck -check-prefix=m0040 %s25 26# m0040: mem-crup-0040.macho': truncated or malformed object (offset field plus size field of section 2 in LC_SEGMENT_64 command 1 extends past the end of the file)27 28# RUN: not llvm-objdump --macho --objc-meta-data \29# RUN:   %p/Inputs/malformed-machos/mem-crup-0080.macho 2>&1 \30# RUN:   | FileCheck -check-prefix=m0080 %s31 32# m0080: mem-crup-0080.macho': truncated or malformed object (addr field plus size of section 2 in LC_SEGMENT_64 command 1 greater than than the segment's vmaddr plus vmsize)33 34# RUN: llvm-objdump --macho --objc-meta-data \35# RUN:   %p/Inputs/malformed-machos/mem-crup-0261.macho36 37# RUN: not llvm-objdump --macho -d \38# RUN:   %p/Inputs/malformed-machos/mem-crup-0337.macho 2>&1 \39# RUN:   | FileCheck -check-prefix=m0337 %s40 41# m0337: mem-crup-0337.macho': truncated or malformed object (section relocation entries at offset 0 with a size of 512, overlaps Mach-O headers at offset 0 with a size of 2048)42 43RUN: not llvm-objdump --macho -d %p/Inputs/macho-invalid-symbol-nsect 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-NSECT %s44INVALID-SYMBOL-NSECT: macho-invalid-symbol-nsect': truncated or malformed object (bad section index: 97 for symbol at index 1)45 46RUN: not llvm-objdump --macho -d %p/Inputs/macho-invalid-symbol-nsect-archive 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-NSECT-ARCHIVE %s47INVALID-SYMBOL-NSECT-ARCHIVE: macho-invalid-symbol-nsect-archive(macho-invalid-symbol-nsect): truncated or malformed object (bad section index: 97 for symbol at index 1)48 49RUN: not llvm-objdump --macho -d %p/Inputs/macho-invalid-symbol-indr 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-INDR %s50INVALID-SYMBOL-INDR: macho-invalid-symbol-indr': truncated or malformed object (bad n_value: 22 past the end of string table, for N_INDR symbol at index 1)51 52RUN: not llvm-objdump --macho -d --arch all %p/Inputs/macho-invalid-symbol-indr-archive-universal 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-INDR-ARCHIVE-UNIVERSAL %s53INVALID-SYMBOL-INDR-ARCHIVE-UNIVERSAL: macho-invalid-symbol-indr-archive-universal(macho-invalid-symbol-indr) (for architecture i386): truncated or malformed object (bad n_value: 22 past the end of string table, for N_INDR symbol at index 1)54 55RUN: not llvm-objdump --macho -d %p/Inputs/macho-invalid-symbol-strx 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-STRX %s56INVALID-SYMBOL-STRX: macho-invalid-symbol-strx': truncated or malformed object (bad string table index: 22 past the end of string table, for symbol at index 1)57 58RUN: llvm-objdump -d %p/Inputs/macho-invalid-symbol-strx 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-STRX-NO-MACHO-FLAG %s59INVALID-SYMBOL-STRX-NO-MACHO-FLAG: macho-invalid-symbol-strx': truncated or malformed object (bad string index: 22 for symbol at index 1)60 61RUN: not llvm-objdump --macho -d --arch all %p/Inputs/macho-invalid-symbol-strx-universal 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-STRX-UNIVERSAL %s62INVALID-SYMBOL-STRX-UNIVERSAL: macho-invalid-symbol-strx-universal' (for architecture i386): truncated or malformed object (bad string table index: 22 past the end of string table, for symbol at index 1)63 64RUN: not llvm-objdump --macho -d %p/Inputs/macho-invalid-symbol-lib_ordinal 2>&1 | FileCheck --check-prefix INVALID-SYMBOL-LIB_ORDINAL %s65INVALID-SYMBOL-LIB_ORDINAL: macho-invalid-symbol-lib_ordinal': truncated or malformed object (bad library ordinal: 7 for symbol at index 2)66 67RUN: not llvm-objdump --macho --objc-meta-data %p/Inputs/macho-invalid-bind-entry 2>&1 | FileCheck --check-prefix INVALID-BIND-ENTRY %s68INVALID-BIND-ENTRY: macho-invalid-bind-entry': truncated or malformed object (for BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB bad library ordinal: 83 (max 0) for opcode at: 0x0)69 70RUN: llvm-objdump --macho -r --arch x86_64 %p/Inputs/macho-invalid-reloc-section-index 2>&1 | FileCheck --check-prefix INVALID-RELOC-SECTION-INDEX %s71INVALID-RELOC-SECTION-INDEX: 00000021 False byte   False  UNSIGND False     8388613 (?,?)72 73RUN: not llvm-objdump --bind -g --macho -r --rebase -s --section-headers -t --unwind-info %p/Inputs/macho-invalid-linker-command 2>&1 | FileCheck --check-prefix INVALID-LINKCMD %s74INVALID-LINKCMD: truncated or malformed object (load command 4 LC_LINKER_OPTION string #2 is not NULL terminated)75