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.


svn:r17970
This commit is contained in:
Roger Dingledine 2009-01-06 19:03:15 +00:00
parent 0955a1b9e1
commit 68806c7fb7
2 changed files with 11 additions and 4 deletions

View File

@ -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.

View File

@ -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.");