]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Stop being so strict about the payload length of "rendezvous1" cells
authorRoger Dingledine <arma@torproject.org>
Tue, 10 May 2016 00:34:27 +0000 (20:34 -0400)
committerRoger Dingledine <arma@torproject.org>
Tue, 10 May 2016 00:34:27 +0000 (20:34 -0400)
We used to be locked in to the "tap" handshake length, and now we can
handle better handshakes like "ntor".

Resolves ticket 18998.

I checked that relay_send_command_from_edge() behaves fine when you
hand it a payload with length 0. Clients behave fine too, since current
clients remain strict about the required length in the rendezvous2 cells.
(Clients will want to become less strict once they have an alternate
format that they're willing to receive.)

changes/feature18998 [new file with mode: 0644]
src/or/rendmid.c

diff --git a/changes/feature18998 b/changes/feature18998
new file mode 100644 (file)
index 0000000..a2679c0
--- /dev/null
@@ -0,0 +1,5 @@
+  o Minor features:
+    - Stop being so strict about the payload length of "rendezvous1"
+      cells. We used to be locked in to the "tap" handshake length,
+      and now we can handle better handshakes like "ntor". Resolves
+      ticket 18998.
index a33ad9296606b1ef10e69041402b2d3c1984ba1c..ca0ad7b0d4385495925ac941bd8513b7a962993b 100644 (file)
@@ -309,7 +309,7 @@ rend_mid_rendezvous(or_circuit_t *circ, const uint8_t *request,
     goto err;
   }
 
-  if (request_len != REND_COOKIE_LEN+DH_KEY_LEN+DIGEST_LEN) {
+  if (request_len < REND_COOKIE_LEN) {
     log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
          "Rejecting RENDEZVOUS1 cell with bad length (%d) on circuit %u.",
          (int)request_len, (unsigned)circ->p_circ_id);