aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2024-10-17 17:42:40 +0200
committerMichael Matz <matz@suse.de>2024-10-17 17:44:29 +0200
commit22ae2e1f702883e6e27d3ad96ee81a6266fbc51c (patch)
tree28aa3228680efa64eb89dfd08cf4afa181ecc0eb
parented3228de9b3335e5c97f738fc22d682f56d42316 (diff)
downloadbinutils-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.c4
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));