[tor-commits] [tor/master] Correct two state-file variable types.

nickm at torproject.org nickm at torproject.org
Tue Sep 26 17:02:34 UTC 2017


commit 4d11a468b20a116978f89115a75cdc45fe5da8ad
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Sep 25 11:51:15 2017 -0400

    Correct two state-file variable types.
    
    These should have been int, but we had listed them as unsigned.
    That's an easy mistake to make, since "int" corresponds with either
    INT or UINT in the configuration file.
    
    This bug cannot have actually caused a problem in practice, since we
    check those fields' values on load, and ensure that they are in
    range 0..INT32_MAX.
---
 src/or/circuitstats.c | 8 ++++----
 src/or/or.h           | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/or/circuitstats.c b/src/or/circuitstats.c
index ad0630e27..923a6d794 100644
--- a/src/or/circuitstats.c
+++ b/src/or/circuitstats.c
@@ -910,7 +910,7 @@ circuit_build_times_parse_state(circuit_build_times_t *cbt,
   int tot_values = 0;
   uint32_t loaded_cnt = 0, N = 0;
   config_line_t *line;
-  unsigned int i;
+  int i;
   build_time_t *loaded_times;
   int err = 0;
   circuit_build_times_init(cbt);
@@ -960,8 +960,8 @@ circuit_build_times_parse_state(circuit_build_times_t *cbt,
         break;
       }
 
-      if (loaded_cnt+count+state->CircuitBuildAbandonedCount
-            > state->TotalBuildTimes) {
+      if (loaded_cnt+count+ (unsigned)state->CircuitBuildAbandonedCount
+          > (unsigned) state->TotalBuildTimes) {
         log_warn(LD_CIRC,
                  "Too many build times in state file. "
                  "Stopping short before %d",
@@ -986,7 +986,7 @@ circuit_build_times_parse_state(circuit_build_times_t *cbt,
     loaded_times[loaded_cnt++] = CBT_BUILD_ABANDONED;
   }
 
-  if (loaded_cnt != state->TotalBuildTimes) {
+  if (loaded_cnt != (unsigned)state->TotalBuildTimes) {
     log_warn(LD_CIRC,
             "Corrupt state file? Build times count mismatch. "
             "Read %d times, but file says %d", loaded_cnt,
diff --git a/src/or/or.h b/src/or/or.h
index a90841fbc..84913efc4 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -4686,8 +4686,8 @@ typedef struct {
 
   /** Build time histogram */
   config_line_t * BuildtimeHistogram;
-  unsigned int TotalBuildTimes;
-  unsigned int CircuitBuildAbandonedCount;
+  int TotalBuildTimes;
+  int CircuitBuildAbandonedCount;
 
   /** What version of Tor wrote this state file? */
   char *TorVersion;





More information about the tor-commits mailing list