[PATCH] [Object] Don't crash on empty export lists.

Juergen Ributzka juergen at apple.com
Thu Dec 18 18:31:50 PST 2014


REPOSITORY
  rL LLVM

http://reviews.llvm.org/D6732

Files:
  llvm/trunk/lib/Object/MachOObjectFile.cpp
  llvm/trunk/test/Object/Inputs/macho-no-exports.dylib
  llvm/trunk/test/Object/objdump-export-list.test

Index: llvm/trunk/test/Object/objdump-export-list.test
===================================================================
--- llvm/trunk/test/Object/objdump-export-list.test
+++ llvm/trunk/test/Object/objdump-export-list.test
@@ -0,0 +1,4 @@
+RUN: llvm-objdump -exports-trie %p/Inputs/macho-no-exports.dylib | FileCheck %s
+
+; Test that we don't crash with an empty export list.
+CHECK: macho-no-exports.dylib: file format Mach-O 64-bit x86-64
Index: llvm/trunk/lib/Object/MachOObjectFile.cpp
===================================================================
--- llvm/trunk/lib/Object/MachOObjectFile.cpp
+++ llvm/trunk/lib/Object/MachOObjectFile.cpp
@@ -1640,7 +1640,10 @@
 iterator_range<export_iterator> 
 MachOObjectFile::exports(ArrayRef<uint8_t> Trie) {
   ExportEntry Start(Trie);
-  Start.moveToFirst();
+  if (Trie.size() == 0)
+    Start.moveToEnd();
+  else
+    Start.moveToFirst();
 
   ExportEntry Finish(Trie);
   Finish.moveToEnd();

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6732.17477.patch
Type: text/x-patch
Size: 953 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141219/6597bbd4/attachment.bin>


More information about the llvm-commits mailing list