[tor-commits] [tor/master] Fix spurious warning in bufferevent socks parsing
nickm at torproject.org
nickm at torproject.org
Wed Jul 20 00:41:16 UTC 2011
commit 553ae5dfb5f6bb49889b2b1735217dae803f92d7
Author: Nick Mathewson <nickm at torproject.org>
Date: Tue Jul 19 20:40:15 2011 -0400
Fix spurious warning in bufferevent socks parsing
The problem was that we weren't initializing want_length to 0 before
calling parse_socks() the first time, so it looked like we were
risking an infinite loop when in fact we were safe.
Fixes 3615; bugfix on 0.2.3.2-alpha.
---
changes/bug3615 | 3 +++
src/or/buffers.c | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/changes/bug3615 b/changes/bug3615
new file mode 100644
index 0000000..704b3fa
--- /dev/null
+++ b/changes/bug3615
@@ -0,0 +1,3 @@
+ o Minor bugfixes:
+ - Fix a spurious warning when parsing SOCKS requests with
+ bufferevents enabled. Fixes bug 3615; bugfix on 0.2.3.2-alpha.
diff --git a/src/or/buffers.c b/src/or/buffers.c
index 256b507..e2b0bd0 100644
--- a/src/or/buffers.c
+++ b/src/or/buffers.c
@@ -1581,12 +1581,12 @@ fetch_from_evbuffer_socks(struct evbuffer *buf, socks_request_t *req,
*/
struct evbuffer_iovec v;
int i;
- want_length = evbuffer_get_contiguous_space(buf);
n_drain = 0;
- i = evbuffer_peek(buf, want_length, NULL, &v, 1);
+ i = evbuffer_peek(buf, -1, NULL, &v, 1);
tor_assert(i == 1);
data = v.iov_base;
datalen = v.iov_len;
+ want_length = 0;
res = parse_socks(data, datalen, req, log_sockstype,
safe_socks, &n_drain, &want_length);
More information about the tor-commits
mailing list