/* 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.
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;
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);
}
\f
/* Object output routines. */