diff --git a/src/common/tortls.c b/src/common/tortls.c index 18554068db..308c981559 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -871,11 +871,13 @@ 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)); + /* 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. */ + *n_read = (size_t)(r - tls->last_read_count); *n_written = (size_t)(w - tls->last_write_count); tls->last_read_count = r;