mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
77cc97cf0a20ed0a062a1cb87bef6c40941e4cff
When the KIST schedule() is called, it computes a diff value between the last scheduler run and the current monotonic time. If tha value is below the run interval, the libevent even is updated else the event is run. It turned out that casting to int32_t the returned int64_t value for the very first scheduler run (which is set to 0) was creating an overflow on the 32 bit value leading to adding the event with a gigantic usec value. The scheduler was simply never running for a while. First of all, a BUG() is added for a diff value < 0 because if the time is really monotonic, we should never have a now time that is lower than the last scheduler run time. And we will try to recover with a diff value to 0. Second, the diff value is changed to int64_t so we avoid this "bootstrap overflow" and future casting overflow problems. Fixes #23558 Signed-off-by: David Goulet <dgoulet@torproject.org>
Tor protects your privacy on the internet by hiding the connection
between your Internet address and the services you use. We believe Tor
is reasonably secure, but please ensure you read the instructions and
configure it properly.
To build Tor from source:
./configure && make && make install
To build Tor from a just-cloned git repository:
sh autogen.sh && ./configure && make && make install
Home page:
https://www.torproject.org/
Download new versions:
https://www.torproject.org/download/download.html
Documentation, including links to installation and setup instructions:
https://www.torproject.org/docs/documentation.html
Making applications work with Tor:
https://wiki.torproject.org/projects/tor/wiki/doc/TorifyHOWTO
Frequently Asked Questions:
https://www.torproject.org/docs/faq.html
To get started working on Tor development:
See the doc/HACKING directory.
Description
Languages
C
94.4%
Python
1.5%
C++
1.1%
Shell
1.1%
M4
0.9%
Other
0.8%