diff options
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/remap.c | 7 | ||||
-rw-r--r-- | gas/stabs.c | 1 |
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); } |