r11864@Kushana: nickm | 2007-01-06 01:25:59 -0500

Fix an XXXX012 in connection.c: prevent overflows on unfeasibly-high-bandwidth servers on 32-bit architectures.


svn:r9282
This commit is contained in:
Nick Mathewson 2007-01-06 06:27:15 +00:00
parent aa7b72c97d
commit d6073cc7fa
2 changed files with 6 additions and 3 deletions

View File

@ -27,6 +27,9 @@ Changes in version 0.1.2.6-alpha - 2007-??-??
o Minor bugfixes:
- Restore a warning message if we accidentally resolve an address that
we weren't planning to resolve.
- Prevent an (unlikely) bug on 32-bit architectures that could make
directories send 503s incorrectly when BandwidthBurst plus 2 times
BandwidthRate was over to 2 GB.
Changes in version 0.1.2.5-alpha - 2007-01-06

View File

@ -1183,9 +1183,9 @@ global_write_bucket_low(size_t attempt, int priority)
if (priority == 1) { /* old-style v1 query */
/* Could we handle *two* of these requests within the next two seconds? */
/* XXX012 make this robust against overflows */
if (global_write_bucket + 2*(int)(get_options()->BandwidthRate) <
2*(int)attempt)
int64_t can_write = (int64_t)global_write_bucket
+ 2*get_options()->BandwidthRate;
if (can_write < 2*(int64_t)attempt)
return 1;
} else { /* v2 query */
/* no further constraints yet */