diff options
author | Nick Mathewson <nickm@torproject.org> | 2005-05-02 23:32:23 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2005-05-02 23:32:23 +0000 |
commit | d6a6c8785bb8b126d0b87aa900623fb9d019ab60 (patch) | |
tree | 94f776a05d9be538e91d6d91e85e46a58570bd14 | |
parent | a312ce1d3b77522b08e91e1524c91e9dfb05f90a (diff) | |
download | tor-d6a6c8785bb8b126d0b87aa900623fb9d019ab60.tar.gz tor-d6a6c8785bb8b126d0b87aa900623fb9d019ab60.zip |
When removing all bytes from a buffer, reset buf->cur=buf->mem
svn:r4166
-rw-r--r-- | src/or/buffers.c | 6 | ||||
-rw-r--r-- | src/or/or.h | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/or/buffers.c b/src/or/buffers.c index 8aaa962dec..8648c30786 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -267,7 +267,11 @@ buf_shrink(buf_t *buf) static INLINE void buf_remove_from_front(buf_t *buf, size_t n) { tor_assert(buf->datalen >= n); buf->datalen -= n; - buf->cur = _wrap_ptr(buf, buf->cur+n); + if (buf->datalen) { + buf->cur = _wrap_ptr(buf, buf->cur+n); + } else { + buf->cur = buf->mem; + } buf_shrink_if_underfull(buf); check(); } diff --git a/src/or/or.h b/src/or/or.h index a96e1eea81..a83907d6ed 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1127,7 +1127,6 @@ void buf_shrink(buf_t *buf); size_t buf_datalen(const buf_t *buf); size_t buf_capacity(const buf_t *buf); -unsigned int buf_n_times_resized(const buf_t *buf); const char *_buf_peek_raw_buffer(const buf_t *buf); int read_to_buf(int s, size_t at_most, buf_t *buf, int *reached_eof); |