[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