From a15691a56e059d4c715353c3dece0fed51162363 Mon Sep 17 00:00:00 2001 From: David MacKenzie Date: Sat, 12 Feb 1994 00:59:26 +0000 Subject: * archive.c (normalize) [VMS]: Call malloc, not bfd_xmalloc. (bfd_construct_extended_name_table): Check result of normalize. --- bfd/archive.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'bfd/archive.c') diff --git a/bfd/archive.c b/bfd/archive.c index 852124a..b96a2b8 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -1121,7 +1121,10 @@ normalize (file) } - copy = bfd_xmalloc (last - first + 1); + copy = malloc (last - first + 1); + if (!copy) + return copy; + memcpy (copy, first, last - first); copy[last - first] = 0; @@ -1167,7 +1170,15 @@ bfd_construct_extended_name_table (abfd, tabloc, tablen) /* Figure out how long the table should be */ for (current = abfd->archive_head; current != NULL; current = current->next) { - unsigned int thislen = strlen (normalize (current->filename)); + CONST char *normal = normalize (current->filename); + unsigned int thislen; + + if (!normal) + { + bfd_error = no_memory; + return false; + } + thislen = strlen (normal); if (thislen > maxname) total_namelen += thislen + 1; /* leave room for \n */ } @@ -1189,7 +1200,14 @@ bfd_construct_extended_name_table (abfd, tabloc, tablen) current->next) { CONST char *normal = normalize (current->filename); - unsigned int thislen = strlen (normal); + unsigned int thislen; + + if (!normal) + { + bfd_error = no_memory; + return false; + } + thislen = strlen (normal); if (thislen > maxname) { /* Works for now; may need to be re-engineered if we -- cgit v1.1