diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2011-12-02 18:57:18 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2011-12-02 18:57:18 +0000 |
| commit | 8e39edc5675509d7f65b6b44c4f9f46c649d9929 (patch) | |
| tree | 79bdfcc73ec0af99048abc0b06f20cf75fd2a006 /src/dynamic_buffer_iterator.cc | |
| parent | b1daf8de16d7612ed116d3a5f98469ef1835e74c (diff) | |
DynamicBufferIterator: fix end of buffer corner case
Diffstat (limited to 'src/dynamic_buffer_iterator.cc')
| -rw-r--r-- | src/dynamic_buffer_iterator.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dynamic_buffer_iterator.cc b/src/dynamic_buffer_iterator.cc index fac3cd39..e434ded6 100644 --- a/src/dynamic_buffer_iterator.cc +++ b/src/dynamic_buffer_iterator.cc @@ -44,7 +44,9 @@ void DynamicBufferIterator::on_modification(const BufferModification& modificati size_t length = modification.content.length(); if (modification.type == BufferModification::Erase) { - if (*this <= modification.position + length) + // do not move length on the other side of the inequality, + // as modification.position + length may be after buffer end + if (*this - length <= modification.position) BufferIterator::operator=(modification.position); else *this -= length; |
