aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2011-03-11 14:18:24 +0000
committerNick Clifton <nickc@redhat.com>2011-03-11 14:18:24 +0000
commit502df130577339e30647c32a728b01c2fe99e78e (patch)
treee95301c187328674b6401a649eecfc81d5695df5
parentf2eb0bc849b3c5598d02a2b83b2cef29312a171d (diff)
downloadgdb-502df130577339e30647c32a728b01c2fe99e78e.zip
gdb-502df130577339e30647c32a728b01c2fe99e78e.tar.gz
gdb-502df130577339e30647c32a728b01c2fe99e78e.tar.bz2
* remap.c (remap_debug_filename): Always allocate a buffer for the
returned pointer. * stabs.c (stabs_generate_asm_file): Free the pointer returned by remap_debug_filename.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/remap.c7
-rw-r--r--gas/stabs.c1
3 files changed, 12 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 437768e..4cffafc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2011-03-11 Nick Clifton <nickc@redhat.com>
+
+ * remap.c (remap_debug_filename): Always allocate a buffer for the
+ returned pointer.
+ * stabs.c (stabs_generate_asm_file): Free the pointer returned by
+ remap_debug_filename.
+
2011-03-10 Michael Snyder <msnyder@vmware.com>
Revert the following change:
diff --git a/gas/remap.c b/gas/remap.c
index 0c863fb..ae9b9dd 100644
--- a/gas/remap.c
+++ b/gas/remap.c
@@ -65,8 +65,9 @@ add_debug_prefix_map (const char *arg)
debug_prefix_maps = map;
}
-/* Perform user-specified mapping of debug filename prefixes. Return
- the new name corresponding to FILENAME. */
+/* Perform user-specified mapping of debug filename prefixes. Returns
+ a newly allocated buffer containing the name corresponding to FILENAME.
+ It is the caller's responsibility to free the buffer. */
const char *
remap_debug_filename (const char *filename)
@@ -80,7 +81,7 @@ remap_debug_filename (const char *filename)
if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
break;
if (!map)
- return filename;
+ return xstrdup (filename);
name = filename + map->old_len;
name_len = strlen (name) + 1;
s = (char *) alloca (name_len + map->new_len);
diff --git a/gas/stabs.c b/gas/stabs.c
index f197ebd..e0594fa 100644
--- a/gas/stabs.c
+++ b/gas/stabs.c
@@ -502,6 +502,7 @@ stabs_generate_asm_file (void)
dir2 = (char *) alloca (strlen (dir) + 2);
sprintf (dir2, "%s%s", dir, "/");
generate_asm_file (N_SO, dir2);
+ xfree ((char *) dir);
}
generate_asm_file (N_SO, file);
}