aboutsummaryrefslogtreecommitdiff
path: root/bfd/libbfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/libbfd.c')
-rw-r--r--bfd/libbfd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/bfd/libbfd.c b/bfd/libbfd.c
index 7c45d52..305ee22 100644
--- a/bfd/libbfd.c
+++ b/bfd/libbfd.c
@@ -254,6 +254,10 @@ _bfd_dummy_target (bfd *ignore_abfd ATTRIBUTE_UNUSED)
/* Allocate memory using malloc. */
+#ifndef SSIZE_MAX
+#define SSIZE_MAX ((size_t) -1 >> 1)
+#endif
+
void *
bfd_malloc (bfd_size_type size)
{
@@ -262,7 +266,7 @@ bfd_malloc (bfd_size_type size)
if (size != sz
/* This is to pacify memory checkers like valgrind. */
- || ((signed long) sz) < 0)
+ || sz > SSIZE_MAX)
{
bfd_set_error (bfd_error_no_memory);
return NULL;
@@ -304,7 +308,7 @@ bfd_realloc (void *ptr, bfd_size_type size)
if (size != sz
/* This is to pacify memory checkers like valgrind. */
- || ((signed long) sz) < 0)
+ || sz > SSIZE_MAX)
{
bfd_set_error (bfd_error_no_memory);
return NULL;