]> granicus.if.org Git - llvm/commitdiff
Fix a bug in llvm-obdump(1) with the -macho and -info-plist options
authorKevin Enderby <enderby@apple.com>
Mon, 6 Feb 2017 21:01:08 +0000 (21:01 +0000)
committerKevin Enderby <enderby@apple.com>
Mon, 6 Feb 2017 21:01:08 +0000 (21:01 +0000)
which caused it to print more than the (__TEXT,__info_plist) if that
section did not end with a null.

rdar://27378808

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294236 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test [new file with mode: 0644]
tools/llvm-objdump/MachODump.cpp

diff --git a/test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test b/test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test
new file mode 100644 (file)
index 0000000..12ad166
--- /dev/null
@@ -0,0 +1,10 @@
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -info-plist - | FileCheck %s
+
+.section  __TEXT, __info_plist
+.ascii "This is the (__TEXT,__info_plist) section\n"
+.section __TEXT, __follow
+.asciz "This is the (__TEXT,__follow) section\n"
+
+# CHECK: Contents of (__TEXT,__info_plist) section
+# CHECK: This is the (__TEXT,__info_plist) section
+# CHECK-NOT: This is the (__TEXT,__follow) section
index b70e82566257c77cb2c96744ee0f449c9f8910b5..df1b74400ab2a8c98d66ced1ea27e036c716b43b 100644 (file)
@@ -1142,7 +1142,7 @@ static void DumpInfoPlistSectionContents(StringRef Filename,
       StringRef BytesStr;
       Section.getContents(BytesStr);
       const char *sect = reinterpret_cast<const char *>(BytesStr.data());
-      outs() << sect;
+      outs() << format("%.*s", BytesStr.size(), sect) << "\n";
       return;
     }
   }