/* opncls.c -- open and close a BFD.
- Copyright (C) 1990-2019 Free Software Foundation, Inc.
+ Copyright (C) 1990-2020 Free Software Foundation, Inc.
Written by Cygnus Support.
return ret;
}
-/*
-INTERNAL_FUNCTION
- bfd_alloc2
-
-SYNOPSIS
- void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
-
-DESCRIPTION
- Allocate a block of @var{nmemb} elements of @var{size} bytes each
- of memory attached to <<abfd>> and return a pointer to it.
-*/
-
-void *
-bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size)
-{
- if ((nmemb | size) >= HALF_BFD_SIZE_TYPE
- && size != 0
- && nmemb > ~(bfd_size_type) 0 / size)
- {
- bfd_set_error (bfd_error_no_memory);
- return NULL;
- }
-
- return bfd_alloc (abfd, size * nmemb);
-}
-
/*
FUNCTION
bfd_zalloc
return res;
}
-/*
-INTERNAL_FUNCTION
- bfd_zalloc2
-
-SYNOPSIS
- void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
-
-DESCRIPTION
- Allocate a block of @var{nmemb} elements of @var{size} bytes each
- of zeroed memory attached to <<abfd>> and return a pointer to it.
-*/
-
-void *
-bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size)
-{
- void *res;
-
- if ((nmemb | size) >= HALF_BFD_SIZE_TYPE
- && size != 0
- && nmemb > ~(bfd_size_type) 0 / size)
- {
- bfd_set_error (bfd_error_no_memory);
- return NULL;
- }
-
- size *= nmemb;
-
- res = bfd_alloc (abfd, size);
- if (res)
- memset (res, 0, (size_t) size);
- return res;
-}
-
/* Free a block allocated for a BFD.
Note: Also frees all more recently allocated blocks! */
unsigned int crc_offset;
char *name;
bfd_size_type size;
+ ufile_ptr file_size;
BFD_ASSERT (abfd);
BFD_ASSERT (crc32_out);
return NULL;
size = bfd_section_size (sect);
+ file_size = bfd_get_size (abfd);
/* PR 22794: Make sure that the section has a reasonable size. */
- if (size < 8 || size >= bfd_get_size (abfd))
+ if (size < 8 || (file_size != 0 && size >= file_size))
return NULL;
if (!bfd_malloc_and_get_section (abfd, sect, &contents))
unsigned int buildid_offset;
char *name;
bfd_size_type size;
+ ufile_ptr file_size;
BFD_ASSERT (abfd);
BFD_ASSERT (buildid_len);
return NULL;
size = bfd_section_size (sect);
- if (size < 8 || size >= bfd_get_size (abfd))
+ file_size = bfd_get_size (abfd);
+ if (size < 8 || (file_size != 0 && size >= file_size))
return NULL;
if (!bfd_malloc_and_get_section (abfd, sect, & contents))