X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Fvms-misc.c;h=d040c79de16ce761e5705eefe951d97160657fd6;hb=d16c467a501547e37b111f775396e28f8bf27c1e;hp=390cb9616f883819b33063720085f2c78e5eed51;hpb=219d1afa89d0d53ca93a684cac341f16470f3ca0;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/vms-misc.c b/bfd/vms-misc.c index 390cb9616f..d040c79de1 100644 --- a/bfd/vms-misc.c +++ b/bfd/vms-misc.c @@ -1,6 +1,6 @@ /* vms-misc.c -- BFD back-end for VMS/VAX (openVMS/VAX) and EVAX (openVMS/Alpha) files. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. Miscellaneous functions. @@ -139,13 +139,19 @@ _bfd_hexdump (int level, unsigned char *ptr, int size, int offset) Size is string size (size of record). */ char * -_bfd_vms_save_sized_string (unsigned char *str, unsigned int size) +_bfd_vms_save_sized_string (bfd *abfd, unsigned char *str, size_t size) { - char *newstr = bfd_malloc ((bfd_size_type) size + 1); + char *newstr; + if (size == (size_t) -1) + { + bfd_set_error (bfd_error_no_memory); + return NULL; + } + newstr = bfd_alloc (abfd, size + 1); if (newstr == NULL) return NULL; - memcpy (newstr, (char *) str, (size_t) size); + memcpy (newstr, str, size); newstr[size] = 0; return newstr; @@ -155,13 +161,13 @@ _bfd_vms_save_sized_string (unsigned char *str, unsigned int size) PTR points to size byte on entry. */ char * -_bfd_vms_save_counted_string (unsigned char *ptr, unsigned int maxlen) +_bfd_vms_save_counted_string (bfd *abfd, unsigned char *ptr, size_t maxlen) { unsigned int len = *ptr++; if (len > maxlen) return NULL; - return _bfd_vms_save_sized_string (ptr, len); + return _bfd_vms_save_sized_string (abfd, ptr, len); } /* Object output routines. */