diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-08-20 11:51:34 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-08-20 11:55:33 -0400 |
commit | 9d11827780d15d8b398d8ce6b04110a4dea5e980 (patch) | |
tree | 54e6dc83f381e1595cfb286be3bf078807736d9e /ChangeLog | |
parent | c9b8a4a133780cb2ab3847292284a6e9292b70d1 (diff) | |
download | tor-9d11827780d15d8b398d8ce6b04110a4dea5e980.tar.gz tor-9d11827780d15d8b398d8ce6b04110a4dea5e980.zip |
Fix a rare infinite-recursion bug when shutting down.
Once we had called log_free_all(), anything that tried to log a
message (like a failed tor_assert()) would fail like this:
1. The logging call eventually invokes the _log() function.
2. _log() calls tor_mutex_lock(log_mutex).
3. tor_mutex_lock(m) calls tor_assert(m).
4. Since we freed the log_mutex, tor_assert() fails, and tries to
log its failure.
5. GOTO 1.
Now we allocate the mutex statically, and never destroy it on
shutdown.
Bugfix on 0.2.0.16-alpha, which introduced the log mutex.
This bug was found by Matt Edman.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -15,6 +15,9 @@ Changes in version 0.2.1.20 - 2009-??-?? - Fix a signed/unsigned compile warning in 0.2.1.19. - Fix possible segmentation fault on directory authorities. Bugfix on 0.2.1.14-rc. + - Fix an extremely infinite recursion bug that could occur if we tried + to log a message after shutting down the log subsystem. Found by Matt + Edman. Bugfix on 0.2.0.16-alpha. Changes in version 0.2.1.19 - 2009-07-28 |