[binutils-gdb] Another ldelf_before_allocation leak
Alan Modra
amodra@sourceware.org
Thu Jan 23 06:46:41 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a62e0f8597b13b48c16a889a3afb993bfce75f24
commit a62e0f8597b13b48c16a889a3afb993bfce75f24
Author: Alan Modra <amodra@gmail.com>
Date: Wed Jan 22 07:39:53 2025 +1030
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:
---
ld/ldelf.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
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);
}
}
More information about the Binutils-cvs
mailing list