From 3710c56d3bff0e968c343088d9973a8dd6ed3461 Mon Sep 17 00:00:00 2001 From: Gunther Nikl Date: Sun, 16 Nov 2014 17:21:24 +0000 Subject: [PATCH] (amiga_read_ar_hdr): Increase the allocated file name buffer in case the found hunk name has to be modified. Add an "unique" file name extension if the read hunk name does not have an .o or .obj extension. --- bfd/amigaos.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bfd/amigaos.c b/bfd/amigaos.c index dc764db..28cd88c 100644 --- a/bfd/amigaos.c +++ b/bfd/amigaos.c @@ -3015,7 +3015,7 @@ amiga_read_ar_hdr (abfd) len = GL (&buf[4]) << 2; - ared->filename = bfd_alloc (abfd, len+1 > 16 ? len+1 : 16); + ared->filename = bfd_alloc (abfd, len+1 > 16 ? len+1+16 : 32); if (ared->filename == NULL) return NULL; @@ -3032,7 +3032,9 @@ amiga_read_ar_hdr (abfd) if (*name == '/') base = name + 1; if (*base != '\0') { - ared->filename = base; + char *const p = strrchr (ared->filename = base, '.'); + if (!p || (strcmp (p, ".o") && strcmp (p, ".obj"))) + sprintf (name, "-%08lu.o", ++amiga_ardata(abfd)->outnum); break; } /* Fall through */