зеркало из https://github.com/github/putty.git
Krzysztof Kowalczyk notes that 'etastr' can overflow if the times involved
start to get silly. Replace it with a dynamically allocated string instead. [originally from svn r4153]
This commit is contained in:
Родитель
28e5492cb6
Коммит
0b3f799be7
8
scp.c
8
scp.c
|
@ -470,7 +470,7 @@ static void print_stats(char *name, unsigned long size, unsigned long done,
|
||||||
{
|
{
|
||||||
float ratebs;
|
float ratebs;
|
||||||
unsigned long eta;
|
unsigned long eta;
|
||||||
char etastr[10];
|
char *etastr;
|
||||||
int pct;
|
int pct;
|
||||||
int len;
|
int len;
|
||||||
int elap;
|
int elap;
|
||||||
|
@ -486,8 +486,8 @@ static void print_stats(char *name, unsigned long size, unsigned long done,
|
||||||
eta = size - done;
|
eta = size - done;
|
||||||
else
|
else
|
||||||
eta = (unsigned long) ((size - done) / ratebs);
|
eta = (unsigned long) ((size - done) / ratebs);
|
||||||
sprintf(etastr, "%02ld:%02ld:%02ld",
|
etastr = dupprintf("%02ld:%02ld:%02ld",
|
||||||
eta / 3600, (eta % 3600) / 60, eta % 60);
|
eta / 3600, (eta % 3600) / 60, eta % 60);
|
||||||
|
|
||||||
pct = (int) (100 * (done * 1.0 / size));
|
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);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(etastr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Загрузка…
Ссылка в новой задаче