This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Avoid spurious readelf error status from decode_arm_unwind.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=97953bab05cca82bd3119de4d5cf26103b649597

commit 97953bab05cca82bd3119de4d5cf26103b649597
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Oct 5 14:19:39 2017 +0000

    Avoid spurious readelf error status from decode_arm_unwind.
    
    readelf.c:decode_arm_unwind has a variable res that is used as a
    return value, with FALSE meaning unsuccessful and TRUE meaning
    successful.  This is initialized to FALSE (and then various code in
    the function sets it to FALSE again on error), meaning that when the
    function is successful, if it reaches returning res is still returns
    FALSE, resulting eventually in exit status 1 from readelf without any
    error message to indicate an error.
    
    This patch fixes the initialization to use TRUE, so avoiding those
    spurious errors.  I don't have a self-contained test for this issue;
    it was observed as many prelink tests failing without the patch and
    passing with it.
    
    	* readelf.c (decode_arm_unwind): Initialize res to TRUE.

Diff:
---
 binutils/ChangeLog | 4 ++++
 binutils/readelf.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 4daa60e..4fb4eb4 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2017-10-05  Joseph Myers  <joseph@codesourcery.com>
+
+	* readelf.c (decode_arm_unwind): Initialize res to TRUE.
+
 2017-10-05  Nick Clifton  <nickc@redhat.com>
 
 	PR 22260
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 3cdde6c..22d60e9 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -8731,7 +8731,7 @@ decode_arm_unwind (struct arm_unw_aux_info *  aux,
   unsigned int more_words = 0;
   struct absaddr addr;
   bfd_vma sym_name = (bfd_vma) -1;
-  bfd_boolean res = FALSE;
+  bfd_boolean res = TRUE;
 
   if (remaining == 0)
     {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]