diff options
Diffstat (limited to 'binutils/dwarf.c')
-rw-r--r-- | binutils/dwarf.c | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 424353c..4b46100 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -12318,34 +12318,14 @@ load_debug_sup_file (const char * main_filename, void * file) } if (filename[0] != '/' && strchr (main_filename, '/')) - { - char * new_name; - int new_len; - - new_len = asprintf (& new_name, "%.*s/%s", + filename = xasprintf ("%.*s/%s", (int) (strrchr (main_filename, '/') - main_filename), main_filename, filename); - if (new_len < 3) - { - warn (_("unable to construct path for supplementary debug file\n")); - if (new_len > -1) - free (new_name); - return; - } - filename = new_name; - } else - { - /* PR 27796: Make sure that we pass a filename that can be free'd to - add_separate_debug_file(). */ - filename = strdup (filename); - if (filename == NULL) - { - warn (_("out of memory constructing filename for .debug_sup link\n")); - return; - } - } + /* PR 27796: Make sure that we pass a filename that can be free'd to + add_separate_debug_file(). */ + filename = xstrdup (filename); void * handle = open_debug_file (filename); if (handle == NULL) |