Fixed interger overflow in progress meter for large files
This commit is contained in:
parent
33e511edb3
commit
634bf647af
10
scp.c
10
scp.c
|
@ -42,11 +42,11 @@ and ssh has the necessary privileges.)
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: scp.c,v 1.2 1999/10/28 05:23:30 damien Exp $
|
* $Id: scp.c,v 1.3 1999/11/11 01:25:14 damien Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: scp.c,v 1.2 1999/10/28 05:23:30 damien Exp $");
|
RCSID("$Id: scp.c,v 1.3 1999/11/11 01:25:14 damien Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
|
@ -976,7 +976,7 @@ run_err(const char *fmt, ...)
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: scp.c,v 1.2 1999/10/28 05:23:30 damien Exp $
|
* $Id: scp.c,v 1.3 1999/11/11 01:25:14 damien Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *
|
char *
|
||||||
|
@ -1121,7 +1121,7 @@ progressmeter(int flag)
|
||||||
struct timeval now, td, wait;
|
struct timeval now, td, wait;
|
||||||
off_t cursize, abbrevsize;
|
off_t cursize, abbrevsize;
|
||||||
double elapsed;
|
double elapsed;
|
||||||
int ratio, barlength, i, remaining;
|
unsigned int ratio, barlength, i, remaining;
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
|
||||||
if (flag == -1) {
|
if (flag == -1) {
|
||||||
|
@ -1132,7 +1132,7 @@ progressmeter(int flag)
|
||||||
(void)gettimeofday(&now, (struct timezone *)0);
|
(void)gettimeofday(&now, (struct timezone *)0);
|
||||||
cursize = statbytes;
|
cursize = statbytes;
|
||||||
if (totalbytes != 0) {
|
if (totalbytes != 0) {
|
||||||
ratio = cursize * 100 / totalbytes;
|
ratio = (cursize >> 10) * 100 / (totalbytes >> 10);
|
||||||
ratio = MAX(ratio, 0);
|
ratio = MAX(ratio, 0);
|
||||||
ratio = MIN(ratio, 100);
|
ratio = MIN(ratio, 100);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue