Another ldelf_before_allocation leak

Message ID Z5HkvnJ8DJ3TO71d@squeak.grove.modra.org
State New
Headers
Series Another ldelf_before_allocation leak |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply

Commit Message

Alan Modra Jan. 23, 2025, 6:42 a.m. UTC
  This fixes an even more obvious leak.

	* ldelf.c (ldelf_before_allocation): Free copied elf_dt_audit.
	Simplify loop.
  

Patch

diff --git a/ld/ldelf.c b/ld/ldelf.c
index f56a62780f0..dbc3d77d47b 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1821,24 +1821,22 @@  ldelf_before_allocation (char **audit, char **depaudit,
 	   a dep audit entry.  */
 	if (audit_libs && *audit_libs != '\0')
 	  {
-	    char *cp = xstrdup (audit_libs);
+	    char *copy_audit_libs = xstrdup (audit_libs);
+	    char *cp = copy_audit_libs;
 	    do
 	      {
-		int more = 0;
 		char *cp2 = strchr (cp, config.rpath_separator);
 
 		if (cp2)
-		  {
-		    *cp2 = '\0';
-		    more = 1;
-		  }
+		  *cp2++ = '\0';
 
-		if (cp != NULL && *cp != '\0')
+		if (*cp != '\0')
 		  ldelf_append_to_separated_string (depaudit, cp);
 
-		cp = more ? ++cp2 : NULL;
+		cp = cp2;
 	      }
 	    while (cp != NULL);
+	    free (copy_audit_libs);
 	  }
       }