From a122fd01e71b129e40413dfb410ae92affa0ff7e Mon Sep 17 00:00:00 2001 From: jacob Date: Tue, 27 Apr 2004 18:23:48 +0000 Subject: [PATCH] Krzysztof Kowalczyk notes that 'etastr' can overflow if the times involved start to get silly. Replace it with a dynamically allocated string instead. git-svn-id: svn://svn.tartarus.org/sgt/putty@4153 cda61777-01e9-0310-a592-d414129be87e --- scp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scp.c b/scp.c index 4334d9ff..06bf0893 100644 --- a/scp.c +++ b/scp.c @@ -470,7 +470,7 @@ static void print_stats(char *name, unsigned long size, unsigned long done, { float ratebs; unsigned long eta; - char etastr[10]; + char *etastr; int pct; int len; int elap; @@ -486,8 +486,8 @@ static void print_stats(char *name, unsigned long size, unsigned long done, eta = size - done; else eta = (unsigned long) ((size - done) / ratebs); - sprintf(etastr, "%02ld:%02ld:%02ld", - eta / 3600, (eta % 3600) / 60, eta % 60); + etastr = dupprintf("%02ld:%02ld:%02ld", + eta / 3600, (eta % 3600) / 60, eta % 60); pct = (int) (100 * (done * 1.0 / size)); @@ -506,6 +506,8 @@ static void print_stats(char *name, unsigned long size, unsigned long done, fflush(stdout); } + + free(etastr); } /* -- 2.11.0