Clean keys on stack in rend_service_intro_has_opened()

This commit is contained in:
Andrea Shepard 2012-06-15 20:43:33 -07:00
parent d43ba536df
commit 88c5d3ca55

View File

@ -1627,8 +1627,8 @@ rend_service_intro_has_opened(origin_circuit_t *circuit)
this case, we might as well close the thing. */ this case, we might as well close the thing. */
log_info(LD_CIRC|LD_REND, "We have just finished an introduction " log_info(LD_CIRC|LD_REND, "We have just finished an introduction "
"circuit, but we already have enough. Closing it."); "circuit, but we already have enough. Closing it.");
circuit_mark_for_close(TO_CIRCUIT(circuit), END_CIRC_REASON_NONE); reason = END_CIRC_REASON_NONE;
return; goto err;
} else { } else {
tor_assert(circuit->build_state->is_internal); tor_assert(circuit->build_state->is_internal);
log_info(LD_CIRC|LD_REND, "We have just finished an introduction " log_info(LD_CIRC|LD_REND, "We have just finished an introduction "
@ -1649,7 +1649,7 @@ rend_service_intro_has_opened(origin_circuit_t *circuit)
} }
circuit_has_opened(circuit); circuit_has_opened(circuit);
return; goto done;
} }
} }
@ -1695,9 +1695,16 @@ rend_service_intro_has_opened(origin_circuit_t *circuit)
goto err; goto err;
} }
return; goto done;
err: err:
circuit_mark_for_close(TO_CIRCUIT(circuit), reason); circuit_mark_for_close(TO_CIRCUIT(circuit), reason);
done:
memset(buf, 0, sizeof(buf));
memset(auth, 0, sizeof(auth));
memset(serviceid, 0, sizeof(serviceid));
return;
} }
/** Called when we get an INTRO_ESTABLISHED cell; mark the circuit as a /** Called when we get an INTRO_ESTABLISHED cell; mark the circuit as a