From: Nick Clifton Date: Fri, 11 Mar 2011 14:18:24 +0000 (+0000) Subject: * remap.c (remap_debug_filename): Always allocate a buffer for the X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=502df130577339e30647c32a728b01c2fe99e78e;p=binutils-gdb.git * 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. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 437768ed5f6..4cffafc3def 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2011-03-11 Nick Clifton + + * 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 Revert the following change: diff --git a/gas/remap.c b/gas/remap.c index 0c863fb10d0..ae9b9ddaa9c 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 f197ebdac73..e0594fa5d4e 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); }