summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarsten Loesing <karsten.loesing@gmx.net>2009-08-29 19:41:08 +0200
committerKarsten Loesing <karsten.loesing@gmx.net>2009-08-29 19:41:08 +0200
commitdd8f16beb555b8d46a7d5157743c762fb4a37068 (patch)
treea7c27926fc19d632f21e996229b9346aa1dbf759
parent64f393d56f8ff58223db56f3b8e64f0074877616 (diff)
downloadtor-dd8f16beb555b8d46a7d5157743c762fb4a37068.tar.gz
tor-dd8f16beb555b8d46a7d5157743c762fb4a37068.zip
Avoid segfault when accessing hidden service.
-rw-r--r--ChangeLog3
-rw-r--r--src/or/rendclient.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 34ba6a7168..6282157f1e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,6 +23,9 @@ Changes in version 0.2.1.20 - 2009-??-??
a wrong clock. Instead, we should only inform the controller when
it's a trusted authority that claims our clock is wrong. Bugfix
on 0.2.0.20-rc; starts to fix bug 1074. Reported by SwissTorExit.
+ - Avoid segfault in rare cases when finishing an introduction circuit
+ as a client and finding out that we don't have an introduction key
+ for it. Fixes bug 1073. Reported by Aaron Swartz.
Changes in version 0.2.1.19 - 2009-07-28
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index a5d7c1016e..5e3c20e807 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -94,6 +94,7 @@ rend_client_send_introduction(origin_circuit_t *introcirc,
}
});
if (!intro_key) {
+ int num_intro_points = smartlist_len(entry->parsed->intro_nodes);
if (rend_cache_lookup_entry(introcirc->rend_data->onion_address,
0, &entry) > 0) {
log_warn(LD_BUG, "We have both a v0 and a v2 rend desc for this "
@@ -109,7 +110,7 @@ rend_client_send_introduction(origin_circuit_t *introcirc,
} else {
log_warn(LD_BUG, "Internal error: could not find intro key; we "
"only have a v2 rend desc with %d intro points.",
- smartlist_len(entry->parsed->intro_nodes));
+ num_intro_points);
goto err;
}
}