summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2020-06-08 17:07:43 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2021-02-04 11:00:00 +0100
commitf7e6eaf84bebac565f462e2ce48f30808cc771eb (patch)
treed02dc088bc7cc5e0127be271cbe9fed505e42b6c /apt-pkg/contrib
parentc4da2ff42da55ffc38c77a9170dc151216d75962 (diff)
Avoid undefined pointer arithmetic while growing mmap
The undefined behaviour sanitizer complains with: runtime error: addition of unsigned offset to 0x… overflowed to 0x… Compilers and runtime do the right thing in any case and it is a codepath that can (and ideally should) be avoided for speed reasons alone, but fixing it can't hurt (too much).
Diffstat (limited to 'apt-pkg/contrib')
-rw-r--r--apt-pkg/contrib/mmap.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc
index 020491172..642e20473 100644
--- a/apt-pkg/contrib/mmap.cc
+++ b/apt-pkg/contrib/mmap.cc
@@ -393,7 +393,7 @@ unsigned long DynamicMMap::Allocate(unsigned long ItemSize)
bool const newError = _error->PendingError();
_error->MergeWithStack();
if (Pools != oldPools)
- I += Pools - oldPools;
+ I = Pools + (I - oldPools);
// Does the allocation failed ?
if (Result == 0 && newError)