From 1d8a4cb9892d582b3bb6f090476c2490633709d4 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 9 Jan 2007 00:50:50 +0000 Subject: [PATCH] Fix an assert error introduced in 0.1.2.5-alpha: if a single TLS connection handles more than 4 gigs in either direction, we assert. svn:r9306 --- ChangeLog | 2 ++ src/common/tortls.c | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 702757238f..85bf8b48e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -31,6 +31,8 @@ Changes in version 0.1.2.6-alpha - 2007-??-?? excess load to the exit nodes. o Major bugfixes: + - Fix an assert error introduced in 0.1.2.5-alpha: if a single TLS + connection handles more than 4 gigs in either direction, we assert. - Fix an assert error introduced in 0.1.2.5-alpha: if you're an advertised exit node, somebody might try to exit from you when you're bootstrapping and before you've built your descriptor yet. diff --git a/src/common/tortls.c b/src/common/tortls.c index c20fec648a..18554068db 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -871,12 +871,11 @@ tor_tls_get_n_raw_bytes(tor_tls_t *tls, size_t *n_read, size_t *n_written) unsigned long r, w; r = BIO_number_read(SSL_get_rbio(tls->ssl)); w = BIO_number_written(SSL_get_wbio(tls->ssl)); - /* If we wrapped around, this should still give us the right answer, unless + /* We are ok with letting these unsigned ints go "negative" here: + * If we wrapped around, this should still give us the right answer, unless * we wrapped around by more than ULONG_MAX since the last time we called * this function. */ - tor_assert(r >= tls->last_read_count); - tor_assert(w >= tls->last_write_count); *n_read = (size_t)(r - tls->last_read_count); *n_written = (size_t)(w - tls->last_write_count); tls->last_read_count = r;