Hi

Including full quote as submitter was not Cc-ed.

> Is there some particular reason why the simple
> while loop tests
>
>     while (count-- > 0) {
>        fprintf(stderr, "=");
>     }
>
> and
>
>     while (width-- > 0) {
>        fprintf(stderr, " ");
>     }
>
> would not work properly? The insertions "> 0" are
> new in relation to the public software. This make
> the while loops trivially skipped for negative
> parameters.

width and cound are both unsigned, so it's not so much an issue that
they become negative, but rather way too large.

I guess the bug submitter did not wait till a couple of billion chars
was printed :-)

> Would
>
>     width = abs(misc_screen_width());

misc_screen_width is unsigned 16 bits...

> and
>
>     count = abs(width * gauge->value / 100);

value is a 64 bit unsigned integer

> improve robustness?

But the line that probably is te culprit is, is the one following it:

width -= count;

unless gauge->value is always between 0 and 100?

Cheers

Luk

PS: It might not be a bad idea to NMU the package to fix this and the
other bugs?
PS2: Should this bug not be tagged lfs?



-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to