Commit 1b22eae1 authored by Nick Mathewson's avatar Nick Mathewson 🥔
Browse files

Fix get_delay() code to avoid TIME_MAX overflow, not INT_MAX.

Fixes bug 20587; bugfix on 35bbf2e4 in 0.2.8.1-alpha.
parent add164aa
Loading
Loading
Loading
Loading

changes/bug20587

0 → 100644
+6 −0
Original line number Diff line number Diff line

  o Minor bugfixes (download timing):
    - When determining when to download a directory object, handle times
      after 2038 if the operating system supports that.  (Someday this will be
      important!)  Fixes bug 20587; bugfix on 0.2.8.1-alpha.
+2 −2
Original line number Diff line number Diff line
@@ -3876,9 +3876,9 @@ download_status_schedule_get_delay(download_status_t *dls,
   * non-negative allows us to safely do the wrapping check below. */
  tor_assert(delay >= 0);

  /* Avoid now+delay overflowing INT_MAX, by comparing with a subtraction
  /* Avoid now+delay overflowing TIME_MAX, by comparing with a subtraction
   * that won't overflow (since delay is non-negative). */
  if (delay < INT_MAX && now <= INT_MAX - delay) {
  if (delay < INT_MAX && now <= TIME_MAX - delay) {
    dls->next_attempt_at = now+delay;
  } else {
    dls->next_attempt_at = TIME_MAX;