From 807adfc879ca29d068ca1161587bf4ad050e8f82 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 16 May 2007 22:15:48 +0000 Subject: [PATCH] r12769@catbus: nickm | 2007-05-16 17:32:01 -0400 Fix warnings from -Wunsafe-loop-optimizations, which incidentally turned up a logic bug in connection_or_flush_from_first_active_circuit that would overcount the number of cells flushed. svn:r10199 --- src/common/crypto.c | 6 ++---- src/or/relay.c | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/common/crypto.c b/src/common/crypto.c index adace97995..4bb58f2d76 100644 --- a/src/common/crypto.c +++ b/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) { + for (cp = key_out, i=0; key_out_len >= DIGEST_LEN; + ++i, cp += DIGEST_LEN, key_out_len -= 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; - key_out_len -= DIGEST_LEN; } memset(tmp, 0, key_in_len+1); tor_free(tmp); diff --git a/src/or/relay.c b/src/or/relay.c index 469741f95b..14078d2d69 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -1807,7 +1807,7 @@ connection_or_flush_from_first_active_circuit(or_connection_t *conn, int max) } tor_assert(*next_circ_on_conn_p(circ,conn)); - for (n_flushed = 0; n_flushed < max && queue->head; ++n_flushed) { + for (n_flushed = 0; n_flushed < max && queue->head; ) { packed_cell_t *cell = cell_queue_pop(queue); tor_assert(*next_circ_on_conn_p(circ,conn));