mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
fix the stale pointer assert bug reported by joe magic
svn:r2436
This commit is contained in:
parent
6468e049be
commit
7798e3d770
@ -633,8 +633,8 @@ int circuit_finish_handshake(circuit_t *circ, char *reply) {
|
||||
* just give up: for circ to close, and return 0.
|
||||
*/
|
||||
int circuit_truncated(circuit_t *circ, crypt_path_t *layer) {
|
||||
crypt_path_t *victim;
|
||||
connection_t *stream;
|
||||
// crypt_path_t *victim;
|
||||
// connection_t *stream;
|
||||
|
||||
tor_assert(circ && CIRCUIT_IS_ORIGIN(circ));
|
||||
tor_assert(layer);
|
||||
@ -646,6 +646,7 @@ int circuit_truncated(circuit_t *circ, crypt_path_t *layer) {
|
||||
circuit_mark_for_close(circ);
|
||||
return 0;
|
||||
|
||||
#if 0
|
||||
while(layer->next != circ->cpath) {
|
||||
/* we need to clear out layer->next */
|
||||
victim = layer->next;
|
||||
@ -668,6 +669,7 @@ int circuit_truncated(circuit_t *circ, crypt_path_t *layer) {
|
||||
|
||||
log_fn(LOG_INFO, "finished");
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/** Decide whether the first bit of the circuit ID will be
|
||||
|
@ -411,6 +411,7 @@ void assert_cpath_layer_ok(const crypt_path_t *cp)
|
||||
tor_assert(cp->handshake_state);
|
||||
break;
|
||||
default:
|
||||
log_fn(LOG_WARN,"Unexpected state %d",cp->state);
|
||||
tor_assert(0);
|
||||
}
|
||||
tor_assert(cp->package_window >= 0);
|
||||
|
@ -333,6 +333,8 @@ void circuit_detach_stream(circuit_t *circ, connection_t *conn) {
|
||||
|
||||
tor_assert(circ && conn);
|
||||
|
||||
conn->cpath_layer = NULL; /* make sure we don't keep a stale pointer */
|
||||
|
||||
if(conn == circ->p_streams) {
|
||||
circ->p_streams = conn->next_stream;
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user