OSDN Git Service

llvm-readobj: relocAddressLess could potentially lie
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 13 Nov 2014 07:54:05 +0000 (07:54 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 13 Nov 2014 07:54:05 +0000 (07:54 +0000)
On error conditions, relocAddressLess might claim that a value is less
than itself.  Instead, abort llvm-readobj.  No functionality change
intended.

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

tools/llvm-readobj/llvm-readobj.cpp

index 55eadd8..6d05658 100644 (file)
@@ -168,8 +168,8 @@ bool error(std::error_code EC) {
 
 bool relocAddressLess(RelocationRef a, RelocationRef b) {
   uint64_t a_addr, b_addr;
-  if (error(a.getOffset(a_addr))) return false;
-  if (error(b.getOffset(b_addr))) return false;
+  if (error(a.getOffset(a_addr))) exit(ReturnValue);
+  if (error(b.getOffset(b_addr))) exit(ReturnValue);
   return a_addr < b_addr;
 }