From 2bcb081cb1d788b46d5ce86e085549fe5b1d3b81 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Sun, 30 Jul 2006 04:32:58 +0000 Subject: defense in depth svn:r6939 --- src/or/circuitbuild.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/or/circuitbuild.c') diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index d2973203a..fa5da30c4 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -625,11 +625,17 @@ circuit_extend(cell_t *cell, circuit_t *circ) char *id_digest=NULL; if (circ->n_conn) { - log_fn(LOG_PROTOCOL_WARN,LD_PROTOCOL, + log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "n_conn already set. Bug/attack. Closing."); return -1; } + if (!server_mode(get_options())) { + log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, + "Got an extend cell, but running as a client. Closing."); + return -1; + } + relay_header_unpack(&rh, cell->payload); if (rh.length < 4+2+ONIONSKIN_CHALLENGE_LEN+DIGEST_LEN) { -- cgit v1.2.3