asan: Invalid free in alpha_ecoff_get_relocated_section_contents

Message ID ZS4Slqp47cEUxFdO@squeak.grove.modra.org
State New
Headers
Series asan: Invalid free in alpha_ecoff_get_relocated_section_contents |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 warning Patch is already merged
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 warning Patch is already merged
linaro-tcwg-bot/tcwg_binutils_check--master-arm warning Patch is already merged

Commit Message

Alan Modra Oct. 17, 2023, 4:50 a.m. UTC
  This fixes an ancient bug in commit a3a33af390 (which makes me think
this code has never been used).  There is a "free (reloc_vector)"
after the end of the loop.

	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Iterate
	through reloc_vector using a temp.
  

Patch

diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index 1b34a8957c2..59476b57237 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -810,13 +810,13 @@  alpha_ecoff_get_relocated_section_contents (bfd *abfd,
 	}
     }
 
-  for (; *reloc_vector != (arelent *) NULL; reloc_vector++)
+  for (arelent **relp = reloc_vector; *relp != NULL; relp++)
     {
       arelent *rel;
       bfd_reloc_status_type r;
       char *err;
 
-      rel = *reloc_vector;
+      rel = *relp;
       r = bfd_reloc_ok;
       switch (rel->howto->type)
 	{