David Goulet cdbf756b90 cc: Fix 32bit arithmetic to actually be 64bit
Coverity report: CID 1492322

________________________________________________________________________________________________________
*** CID 1492322:  Integer handling issues  (OVERFLOW_BEFORE_WIDEN)
/src/core/or/congestion_control_flow.c: 399 in circuit_process_stream_xon()
393       }
394
395       log_info(LD_EDGE, "Got XON: %d", xon->kbps_ewma);
396
397       /* Adjust the token bucket of this edge connection with the drain rate in
398        * the XON. Rate is in bytes from kilobit (kpbs). */
>>>     CID 1492322:  Integer handling issues  (OVERFLOW_BEFORE_WIDEN)
>>>     Potentially overflowing expression "xon_cell_get_kbps_ewma(xon) * 1000U" with type "unsigned int" (32 bits, unsigned) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type "uint64_t" (64 bits, unsigned).
399       uint64_t rate = xon_cell_get_kbps_ewma(xon) * 1000;
400       if (rate == 0 || INT32_MAX < rate) {
401         /* No rate. */
402         rate = INT32_MAX;
403       }
404       token_bucket_rw_adjust(&conn->bucket, (uint32_t) rate, (uint32_t) rate);

Fixes #40478

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-05 13:47:49 -04:00
2021-09-17 09:42:45 -04:00
2020-08-12 14:09:32 +03:00
2021-09-17 11:01:37 -04:00
2018-07-05 11:22:33 +03:00
2018-07-31 19:46:00 -04:00
2018-07-05 11:22:33 +03:00
2018-07-03 16:34:52 +03:00

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://gitlab.torproject.org/legacy/trac/-/wikis/doc/TorifyHOWTO

Frequently Asked Questions:
        https://www.torproject.org/docs/faq.html

Release timeline:
        https://gitlab.torproject.org/tpo/core/team/-/wikis/NetworkTeam/CoreTorReleases

To get started working on Tor development:
        See the doc/HACKING directory.
S
Description
No description provided
Readme 96 MiB
Languages
C 94.4%
Python 1.5%
C++ 1.1%
Shell 1.1%
M4 0.9%
Other 0.8%