]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Bandaid for a seg fault i just got in 0.1.1.20.
authorRoger Dingledine <arma@torproject.org>
Fri, 9 Jun 2006 06:35:45 +0000 (06:35 +0000)
committerRoger Dingledine <arma@torproject.org>
Fri, 9 Jun 2006 06:35:45 +0000 (06:35 +0000)
More generally, i reopened bug 222. Whee.

svn:r6571

src/common/log.c

index 2cdd8e86cd2f1603bbcdcd4984557424443c932f..1d9c10d565247d779fedd79a39d495ff10952a84 100644 (file)
@@ -327,9 +327,12 @@ close_logs(void)
 }
 
 /** Remove and free the log entry <b>victim</b> from the linked-list
- * logfiles (it must be present in the list when this function is
- * called). After this function is called, the caller shouldn't refer
- * to <b>victim</b> anymore.
+ * logfiles (it is probably present, but it might not be due to thread
+ * racing issues). After this function is called, the caller shouldn't
+ * refer to <b>victim</b> anymore.
+ *
+ * Long-term, we need to do something about races in the log subsystem
+ * in general. See bug 222 for more details.
  */
 static void
 delete_log(logfile_t *victim)
@@ -339,8 +342,10 @@ delete_log(logfile_t *victim)
     logfiles = victim->next;
   else {
     for (tmpl = logfiles; tmpl && tmpl->next != victim; tmpl=tmpl->next) ;
-    tor_assert(tmpl);
-    tor_assert(tmpl->next == victim);
+//    tor_assert(tmpl);
+//    tor_assert(tmpl->next == victim);
+    if (!tmpl)
+      return;
     tmpl->next = victim->next;
   }
   tor_free(victim->filename);