From: dtucker@openbsd.org Date: Thu, 30 Jun 2016 05:17:05 +0000 (+0000) Subject: upstream commit X-Git-Tag: V_7_3_P1~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e683fc6f1c8c7295648dbda679df8307786ec1ce;p=thirdparty%2Fopenssh-portable.git upstream commit Explicitly check for 100% completion to avoid potential floating point rounding error, which could cause progressmeter to report 99% on completion. While there invert the test so the 100% case is clearer. with & ok djm@ Upstream-ID: a166870c5878e422f3c71ff802e2ccd7032f715d --- diff --git a/progressmeter.c b/progressmeter.c index d3e0223e5..fe9bf52e4 100644 --- a/progressmeter.c +++ b/progressmeter.c @@ -1,4 +1,4 @@ -/* $OpenBSD: progressmeter.c,v 1.44 2016/05/30 18:34:41 schwarze Exp $ */ +/* $OpenBSD: progressmeter.c,v 1.45 2016/06/30 05:17:05 dtucker Exp $ */ /* * Copyright (c) 2003 Nils Nordman. All rights reserved. * @@ -171,10 +171,10 @@ refresh_progress_meter(void) } /* percent of transfer done */ - if (end_pos != 0) - percent = ((float)cur_pos / end_pos) * 100; - else + if (end_pos == 0 || cur_pos == end_pos) percent = 100; + else + percent = ((float)cur_pos / end_pos) * 100; snprintf(buf + strlen(buf), win_size - strlen(buf), " %3d%% ", percent);