]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
fix the stale pointer assert bug reported by joe magic
authorRoger Dingledine <arma@torproject.org>
Mon, 11 Oct 2004 01:17:42 +0000 (01:17 +0000)
committerRoger Dingledine <arma@torproject.org>
Mon, 11 Oct 2004 01:17:42 +0000 (01:17 +0000)
svn:r2436

src/or/circuitbuild.c
src/or/circuitlist.c
src/or/circuituse.c

index eb4764d156b5864da067223c2e02b53b8a0f997e..86d7d3af18ac760b44dbc5036d0f99f5041478da 100644 (file)
@@ -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
index f66a4b99003e74221629cab5e82852e894d89320..76e3be9252e5e2866b27c7168976c6af820752fe 100644 (file)
@@ -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);
index e52835ef0393558cc13cc97982bcad7275bebc63..70eb0363f215f6af43783822ce1f79c5fa980991 100644 (file)
@@ -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;