From: Alan Modra Date: Tue, 21 Jan 2025 21:09:53 +0000 (+1030) Subject: Another ldelf_before_allocation leak X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a62e0f8597b13b48c16a889a3afb993bfce75f24;p=thirdparty%2Fbinutils-gdb.git Another ldelf_before_allocation leak This fixes an even more obvious leak. * ldelf.c (ldelf_before_allocation): Free copied elf_dt_audit. Simplify loop. --- 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); } }