]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authordtucker@openbsd.org <dtucker@openbsd.org>
Thu, 30 Jun 2016 05:17:05 +0000 (05:17 +0000)
committerDamien Miller <djm@mindrot.org>
Fri, 8 Jul 2016 03:46:59 +0000 (13:46 +1000)
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

progressmeter.c

index d3e0223e51ca2d29c5657a30b2e97d3b1f1b436c..fe9bf52e4c90c6833d2f0b1829045deb5f70b4e9 100644 (file)
@@ -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);