diff options
author | Michael Matz <matz@suse.de> | 2024-10-17 17:42:40 +0200 |
---|---|---|
committer | Michael Matz <matz@suse.de> | 2024-10-17 17:44:29 +0200 |
commit | 22ae2e1f702883e6e27d3ad96ee81a6266fbc51c (patch) | |
tree | 28aa3228680efa64eb89dfd08cf4afa181ecc0eb | |
parent | ed3228de9b3335e5c97f738fc22d682f56d42316 (diff) | |
download | binutils-22ae2e1f702883e6e27d3ad96ee81a6266fbc51c.zip binutils-22ae2e1f702883e6e27d3ad96ee81a6266fbc51c.tar.gz binutils-22ae2e1f702883e6e27d3ad96ee81a6266fbc51c.tar.bz2 |
Fix for -Wstringop-overflow false positive
the way the overflow check was written wasn't understood by some
GCC versions and produced false positives for the memset call being
called potentially with object sizes that are larger than half
address-space.
-rw-r--r-- | bfd/merge.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/merge.c b/bfd/merge.c index c811bc5..abb0269 100644 --- a/bfd/merge.c +++ b/bfd/merge.c @@ -181,9 +181,9 @@ sec_merge_maybe_resize (struct sec_merge_hash *table, unsigned added) do { - newnb *= 2; - if (!(unsigned int)newnb) + if (newnb >> (8 * sizeof(mapofs_type) - 1)) return false; + newnb *= 2; } while (NEEDS_RESIZE (bfdtab->count + added, newnb)); |