From 4ab32dd2a29521afa398a25e8c89f1be675c021d Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Wed, 2 Jan 2013 23:13:07 +0100 Subject: [PATCH] trans_logger: fix potentially incorrect log_pos computation --- lib_log.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_log.c b/lib_log.c index 903f85bd..e06951a6 100644 --- a/lib_log.c +++ b/lib_log.c @@ -157,7 +157,6 @@ void log_flush(struct log_status *logst) logst->offset += gap; } mref->ref_len = logst->offset; - logst->log_pos += logst->offset; memcpy(&logst->log_pos_stamp, &logst->tmp_pos_stamp, sizeof(logst->log_pos_stamp)); cb_info = logst->private; @@ -176,6 +175,7 @@ void log_flush(struct log_status *logst) GENERIC_INPUT_CALL(logst->input, mref_io, mref); GENERIC_INPUT_CALL(logst->input, mref_put, mref); + logst->log_pos += logst->offset; logst->offset = 0; logst->count = 0; logst->log_mref = NULL; @@ -528,9 +528,9 @@ restart: int chunk_rest; if (mref) { - logst->log_pos += logst->offset; GENERIC_INPUT_CALL(logst->input, mref_put, mref); logst->read_mref = NULL; + logst->log_pos += logst->offset; logst->offset = 0; } @@ -603,9 +603,9 @@ done: done_put: old_offset = logst->offset; if (mref) { - logst->log_pos += logst->offset; GENERIC_INPUT_CALL(logst->input, mref_put, mref); logst->read_mref = NULL; + logst->log_pos += logst->offset; logst->offset = 0; } if (status == -EAGAIN && old_offset > 0) {