From a15691a56e059d4c715353c3dece0fed51162363 Mon Sep 17 00:00:00 2001 From: David MacKenzie Date: Sat, 12 Feb 1994 00:59:26 +0000 Subject: [PATCH] * archive.c (normalize) [VMS]: Call malloc, not bfd_xmalloc. (bfd_construct_extended_name_table): Check result of normalize. --- bfd/ChangeLog | 5 +++++ bfd/archive.c | 24 +++++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 00d698cc487..14c77fe8630 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Fri Feb 11 16:56:50 1994 David J. Mackenzie (djm@thepub.cygnus.com) + + * archive.c (normalize) [VMS]: Call malloc, not bfd_xmalloc. + (bfd_construct_extended_name_table): Check result of normalize. + Tue Feb 8 08:57:31 1994 David J. Mackenzie (djm@thepub.cygnus.com) Make all callers of malloc or realloc (including via obstacks) diff --git a/bfd/archive.c b/bfd/archive.c index 852124a3ea4..b96a2b88710 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 -- 2.30.2