|
@@ -102,16 +102,17 @@ int connection_cpu_process_inbuf(connection_t *conn) {
|
|
|
if(p_conn)
|
|
|
circ = circuit_get_by_circ_id_conn(circ_id, p_conn);
|
|
|
|
|
|
+ if(success == 0) {
|
|
|
+ log_fn(LOG_WARN,"decoding onionskin failed. Closing.");
|
|
|
+ if(circ)
|
|
|
+ circuit_mark_for_close(circ);
|
|
|
+ goto done_processing;
|
|
|
+ }
|
|
|
if(!circ) {
|
|
|
log_fn(LOG_INFO,"processed onion for a circ that's gone. Dropping.");
|
|
|
goto done_processing;
|
|
|
}
|
|
|
assert(circ->p_conn);
|
|
|
- if(success == 0) {
|
|
|
- log_fn(LOG_WARN,"decoding onionskin failed. Closing.");
|
|
|
- circuit_mark_for_close(circ);
|
|
|
- goto done_processing;
|
|
|
- }
|
|
|
if(onionskin_answer(circ, buf+TAG_LEN, buf+TAG_LEN+ONIONSKIN_REPLY_LEN) < 0) {
|
|
|
log_fn(LOG_WARN,"onionskin_answer failed. Closing.");
|
|
|
circuit_mark_for_close(circ);
|