From 97953bab05cca82bd3119de4d5cf26103b649597 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 5 Oct 2017 14:19:39 +0000 Subject: [PATCH] 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. --- binutils/ChangeLog | 4 ++++ binutils/readelf.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 4daa60e37e1..4fb4eb464a1 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,7 @@ +2017-10-05 Joseph Myers + + * readelf.c (decode_arm_unwind): Initialize res to TRUE. + 2017-10-05 Nick Clifton PR 22260 diff --git a/binutils/readelf.c b/binutils/readelf.c index 3cdde6c3cf8..22d60e9a7f8 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) { -- 2.39.2