|
|
Message-ID: <20120422180503.GI14673@brightrain.aerifal.cx>
Date: Sun, 22 Apr 2012 14:05:03 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: musl 0.8.9 released
On Sun, Apr 22, 2012 at 02:19:53PM +0200, Pascal Cuoq wrote:
> On Fri, Apr 20, 2012 at 4:06 AM, Rich Felker <dalias@...ifal.cx> wrote:
> > Bug-fix release for a serious breakage in strtol and related
> > functions that made it into the previous release and prevents them
> > from handling numbers with initial spaces.
>
> Sorry for arriving after the battle, and it is nowhere near as serious, but:
>
> src/internal/floatscan.c, line 136:
>
> /* Align incomplete final B1B digit */
> if (k<KMAX && j) {
>
> The condition k<KMAX always holds. The earlier for-loop can be exited
> with at most k == KMAX-2.
> You probably meant:
>
> if (k < KMAX-2 && j).
>
> If you took a bit of safety margin in your choice of KMAX limits, it
> seems to me that it may never matter. But if this is the case, why
> bother testing k at all?
Indeed. There's plenty of extra space in the array because it has to
be rounded up to power-of-two size to avoid expensive mod operations.
Actually, since we only ever inc/dec, I wonder if I should just
replace the masking with a conditional add/sub of KMAX after the
inc/dec; then I could eliminate all the wasted stack space by using a
much smaller value (roughly LDBL_EXP_MAX/12).
In any case, the code does need to ensure that incrementing z does not
overflow in the decimal-point-alignment code that follows, so for now
I'll just make some changes that remove the redundant check and ensure
(perhaps overly careful) that we don't wrap..
Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.