diff options
author | Alan Modra <amodra@gmail.com> | 2018-12-28 09:34:28 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2018-12-28 15:02:04 +1030 |
commit | cb87d9f1a49986b2eb92ac381444f4cc7c9d8a4f (patch) | |
tree | 0e671a28f4d850fa598ad2920be0efe1aff0eb8b /bfd/libbfd.c | |
parent | d1a3c973fa1c0d7eead585e82e02db11daeb36cf (diff) | |
download | gdb-cb87d9f1a49986b2eb92ac381444f4cc7c9d8a4f.zip gdb-cb87d9f1a49986b2eb92ac381444f4cc7c9d8a4f.tar.gz gdb-cb87d9f1a49986b2eb92ac381444f4cc7c9d8a4f.tar.bz2 |
PR23966, mingw failure due to 32-bit long
PR 23966
* libbfd.c (SSIZE_MAX): Define.
(bfd_malloc, bfd_realloc): Don't cast size to long to check for
"negative" values, compare against SSIZE_MAX instead.
Diffstat (limited to 'bfd/libbfd.c')
-rw-r--r-- | bfd/libbfd.c | 8 |
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; |