mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Don't allow initial_length to exceed total_length.
Published in <sxssn62dq99.fsf@florida.arsdigita.de>.
This commit is contained in:
parent
8f93191f26
commit
c77a16309f
@ -1,3 +1,9 @@
|
||||
2002-04-11 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||
|
||||
* progress.c (bar_create): If INITIAL is larger than TOTAL, fix
|
||||
TOTAL.
|
||||
(bar_finish): Likewise.
|
||||
|
||||
2002-04-11 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||
|
||||
* html-url.c (tag_handle_form): New function. Pick up form
|
||||
|
@ -461,6 +461,11 @@ bar_create (long initial, long total)
|
||||
|
||||
memset (bp, 0, sizeof (*bp));
|
||||
|
||||
/* In theory, our callers should take care of this pathological
|
||||
case, but it can sometimes happen. */
|
||||
if (initial > total)
|
||||
total = initial;
|
||||
|
||||
bp->initial_length = initial;
|
||||
bp->total_length = total;
|
||||
|
||||
@ -493,7 +498,7 @@ bar_update (void *progress, long howmuch, long dltime)
|
||||
adjust bp->total_length to the new reality, so that the code in
|
||||
create_image() that depends on total size being smaller or
|
||||
equal to the expected size doesn't abort. */
|
||||
bp->total_length = bp->count + bp->initial_length;
|
||||
bp->total_length = bp->initial_length + bp->count;
|
||||
|
||||
/* This code attempts to determine the current download speed. We
|
||||
measure the speed over the interval of approximately three
|
||||
@ -565,6 +570,11 @@ bar_finish (void *progress, long dltime)
|
||||
{
|
||||
struct bar_progress *bp = progress;
|
||||
|
||||
if (bp->total_length > 0
|
||||
&& bp->count + bp->initial_length > bp->total_length)
|
||||
/* See bar_update() for explanation. */
|
||||
bp->total_length = bp->initial_length + bp->count;
|
||||
|
||||
create_image (bp, dltime);
|
||||
display_image (bp->buffer);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user