diff --git a/ChangeLog b/ChangeLog index 5e5b783d0f..80b897ec96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -67,6 +67,10 @@ Changes in version 0.2.1.10-alpha - 2009-01-0? unencrypted links, we also broke DirPort reachability testing for bridges. So bridges with a non-zero DirPort were printing spurious warns to their logs. Bugfix on 0.2.0.16-alpha. Fixes bug 709. + - When a relay gets a create cell it can't decrypt (e.g. because it's + using the wrong onion key), we were dropping it and letting the + client time out. Now actually answer with a destroy cell. Bugfix + on 0.0.2pre8. o Deprecated and removed features: - The old "tor --version --version" command, which would print out @@ -1239,9 +1243,9 @@ Changes in version 0.2.0.21-rc - 2008-03-02 Bugfix on 0.2.0.16-alpha. Reported by lodger. o Minor bugfixes: - - Fix compilation with OpenSSL 0.9.8 and 0.9.8a. All other supported - OpenSSL versions should have been working fine. Diagnosis and patch - from lodger, Karsten Loesing, and Sebastian Hahn. Fixes bug 616. + - Fix compilation with OpenSSL 0.9.8 and 0.9.8a. All other supported + OpenSSL versions should have been working fine. Diagnosis and patch + from lodger, Karsten Loesing, and Sebastian Hahn. Fixes bug 616. Bugfix on 0.2.0.20-rc. diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index b0d3d1c4c0..88a72886eb 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -274,7 +274,10 @@ cpuworker_main(void *data) reply_to_proxy, keys, CPATH_KEY_MATERIAL_LEN) < 0) { /* failure */ log_debug(LD_OR,"onion_skin_server_handshake failed."); - memset(buf,0,LEN_ONION_RESPONSE); /* send all zeros for failure */ + *buf = 0; /* indicate failure in first byte */ + memcpy(buf+1,tag,TAG_LEN); + /* send all zeros as answer */ + memset(buf+1+TAG_LEN, 0, LEN_ONION_RESPONSE-(1+TAG_LEN)); } else { /* success */ log_debug(LD_OR,"onion_skin_server_handshake succeeded.");