diff options
author | Julian Andres Klode <jak@debian.org> | 2016-02-01 16:25:03 +0100 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2016-02-01 16:25:03 +0100 |
commit | 47fcfff8a50caebe3cd1f2ee19875a2ca8bbeadc (patch) | |
tree | b02d33322b569170674cf4481d9aa994974c887e | |
parent | 5025879e3fdd705bb0607ff8f51a680749c5972a (diff) |
simple_buffer::write: Use free() instead of maxsize - size()
We want to check whether the amount of free space is smaller
than the requested write size. Checking maxsize - size() is
incorrect for bufferstart >= 0, as size() = end - start.
Gbp-Dch: ignore
-rw-r--r-- | apt-pkg/contrib/fileutl.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 4347c55ad..004df3fe8 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -968,9 +968,9 @@ struct APT_HIDDEN simple_buffer { /*{{{*/ } ssize_t write(const void *from, unsigned long long requested_size) APT_MUSTCHECK { - if (buffersize_max - size() < requested_size) - requested_size = buffersize_max - size(); - memcpy(buffer + bufferend, from, requested_size); + if (free() < requested_size) + requested_size = free(); + memcpy(getend(), from, requested_size); bufferend += requested_size; if (bufferstart == bufferend) bufferstart = bufferend = 0; |