diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-02-26 09:51:30 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-02-26 09:51:30 -0500 |
commit | 833d027778ba97020fb5ded1d94e4b21fbcab766 (patch) | |
tree | d7e3d9b859cc8da448e0620b8f95ca25f22c5733 /src/or/circuitlist.c | |
parent | 79c234e0e3fa22d76029bd3b5e2c52072709cff3 (diff) | |
download | tor-833d027778ba97020fb5ded1d94e4b21fbcab766.tar.gz tor-833d027778ba97020fb5ded1d94e4b21fbcab766.zip |
Monotonize the OOM-killer data timers
In a couple of places, to implement the OOM-circuit-killer defense
against sniper attacks, we have counters to remember the age of
cells or data chunks. These timers were based on wall clock time,
which can move backwards, thus giving roll-over results for our age
calculation. This commit creates a low-budget monotonic time, based
on ratcheting gettimeofday(), so that even in the event of a time
rollback, we don't do anything _really_ stupid.
A future version of Tor should update this function to do something
even less stupid here, like employ clock_gettime() or its kin.
Diffstat (limited to 'src/or/circuitlist.c')
-rw-r--r-- | src/or/circuitlist.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 45fc95b561..0534e35553 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -1551,7 +1551,7 @@ circuits_handle_oom(size_t current_allocation) mem_to_recover = current_allocation - mem_target; } - tor_gettimeofday_cached(&now); + tor_gettimeofday_cached_monotonic(&now); now_ms = (uint32_t)tv_to_msec(&now); /* This algorithm itself assumes that you've got enough memory slack |