]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix bugs with assuming time_t can be implicitly cast to long
authorNick Mathewson <nickm@torproject.org>
Tue, 29 Jun 2010 23:55:10 +0000 (19:55 -0400)
committerNick Mathewson <nickm@torproject.org>
Tue, 29 Jun 2010 23:55:10 +0000 (19:55 -0400)
Many friendly operating systems have 64-bit times, and it's not nice
to pass them to an %ld format.

It's also extremely not-nice to write a time to the log as an
integer.  Most people think it's 2010 June 29 23:57 UTC+epsilon, not
1277855805+epsilon.

src/or/circuitbuild.c
src/or/circuituse.c

index 1d654f04c03c97a2df7ff0ff56fe4da3322210a9..6ee2921885661ac298895e78d624643ade4936c7 100644 (file)
@@ -946,11 +946,17 @@ circuit_build_times_network_close(circuit_build_times_t *cbt,
   if (cbt->liveness.network_last_live <= start_time &&
           start_time <= (now - cbt->close_ms/1000.0)) {
     if (did_onehop) {
+      char last_live_buf[ISO_TIME_LEN+1];
+      char start_time_buf[ISO_TIME_LEN+1];
+      char now_buf[ISO_TIME_LEN+1];
+      format_local_iso_time(last_live_buf, cbt->liveness.network_last_live);
+      format_local_iso_time(start_time_buf, start_time);
+      format_local_iso_time(now_buf, now);
       log_warn(LD_BUG,
                "Circuit somehow completed a hop while the network was "
-               "not live. Network was last live at %ld, but circuit launched "
-               "at %ld. It's now %ld.", cbt->liveness.network_last_live,
-               start_time, now);
+               "not live. Network was last live at %s, but circuit launched "
+               "at %s. It's now %s.", last_live_buf, start_time_buf,
+               now_buf);
     }
     cbt->liveness.nonlive_timeouts++;
   }
index c1b39b18e719505c3dfacae4cc37f2bcd4e55110..50800aec5d52c03e2123fa4f54eb40743a47bb58 100644 (file)
@@ -381,7 +381,8 @@ circuit_expire_building(time_t now)
       if (now - victim->timestamp_created > 2*circ_times.close_ms/1000+1) {
         log_notice(LD_CIRC,
                    "Extremely large value for circuit build timeout: %lds. "
-                   "Assuming clock jump.", now - victim->timestamp_created);
+                   "Assuming clock jump.",
+                   (long)(now - victim->timestamp_created));
       } else if (circuit_build_times_count_close(&circ_times,
                                           first_hop_succeeded,
                                           victim->timestamp_created)) {
@@ -727,15 +728,15 @@ circuit_expire_old_circuits_clientside(time_t now)
                 circ->purpose <= CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) ||
                 circ->purpose == CIRCUIT_PURPOSE_S_CONNECT_REND) {
           log_debug(LD_CIRC,
-                    "Closing circuit that has been unused for %d seconds.",
-                    (int)(now - circ->timestamp_created));
+                    "Closing circuit that has been unused for %ld seconds.",
+                    (long)(now - circ->timestamp_created));
           circuit_mark_for_close(circ, END_CIRC_REASON_FINISHED);
         } else if (!TO_ORIGIN_CIRCUIT(circ)->is_ancient) {
           log_notice(LD_CIRC,
                      "Ancient non-dirty circuit %d is still around after "
                      "%ld seconds. Purpose: %d",
                      TO_ORIGIN_CIRCUIT(circ)->global_identifier,
-                     now - circ->timestamp_created,
+                     (long)(now - circ->timestamp_created),
                      circ->purpose);
           TO_ORIGIN_CIRCUIT(circ)->is_ancient = 1;
         }