Browse Source

r13283@catbus: nickm | 2007-06-06 01:43:44 -0400
Fix up a couple of loops flagged by -Wunsafe-loop-optimizations so that they are more readable (and more amenable to compilation)


svn:r10513

Nick Mathewson 17 years ago
parent
commit
6673d445f5
2 changed files with 9 additions and 7 deletions
  1. 3 5
      src/common/crypto.c
  2. 6 2
      src/or/rephist.c

+ 3 - 5
src/common/crypto.c

@@ -1494,14 +1494,12 @@ crypto_expand_key_material(const char *key_in, size_t key_in_len,
   tor_assert(key_out_len <= DIGEST_LEN*256);
 
   memcpy(tmp, key_in, key_in_len);
-  for (cp = key_out, i=0; key_out_len;
-       ++i, cp += DIGEST_LEN, key_out_len -= DIGEST_LEN) {
+  for (cp = key_out, i=0; cp < key_out+key_out_len;
+       ++i, cp += DIGEST_LEN) {
     tmp[key_in_len] = i;
     if (crypto_digest(digest, tmp, key_in_len+1))
       goto err;
-    memcpy(cp, digest, MIN(DIGEST_LEN, key_out_len));
-    if (key_out_len < DIGEST_LEN)
-      break;
+    memcpy(cp, digest, MIN(DIGEST_LEN, key_out_len-(cp-key_out)));
   }
   memset(tmp, 0, key_in_len+1);
   tor_free(tmp);

+ 6 - 2
src/or/rephist.c

@@ -599,7 +599,9 @@ rep_hist_fill_bandwidth_history(char *buf, size_t len, bw_array_t *b)
 
   for (n=0; n<b->num_maxes_set; ++n,++i) {
     uint64_t total;
-    while (i >= NUM_TOTALS) i -= NUM_TOTALS;
+    if (i >= NUM_TOTALS)
+      i -= NUM_TOTALS;
+    tor_assert(i < NUM_TOTALS);
     /* Round the bandwidth used down to the nearest 1k. */
     total = b->totals[i] & ~0x3ff;
     if (n==(b->num_maxes_set-1))
@@ -1473,7 +1475,9 @@ hs_usage_format_history(char *buf, size_t len, uint32_t *data)
     i = current_period->next_idx;
   }
   for (n = 0; n < current_period->num_set; ++n,++i) {
-    while (i >= NUM_TOTALS_HS_USAGE) i -= NUM_TOTALS_HS_USAGE;
+    if (i >= NUM_TOTALS_HS_USAGE)
+      i -= NUM_TOTALS_HS_USAGE;
+    tor_assert(i < NUM_TOTALS_HS_USAGE);
     if (n == (current_period->num_set-1))
       tor_snprintf(cp, len-(cp-buf), "%d", data[i]);
     else