From a62e0f8597b13b48c16a889a3afb993bfce75f24 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 22 Jan 2025 07:39:53 +1030 Subject: Another ldelf_before_allocation leak This fixes an even more obvious leak. * ldelf.c (ldelf_before_allocation): Free copied elf_dt_audit. Simplify loop. --- ld/ldelf.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ld/ldelf.c b/ld/ldelf.c index f56a627..dbc3d77 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); } } -- cgit v1.1