Messages in this thread | ![/](/images/icornerl.gif) | | Date | Fri, 2 May 2003 13:20:58 -0400 (EDT) | From | "Richard B. Johnson" <> | Subject | Re: is there small mistake in lib/vsprintf.c of kernel 2.4.20 ? |
| |
On Fri, 2 May 2003, Jonathan Lundell wrote:
> At 11:27am -0400 5/2/03, Richard B. Johnson wrote: > >If your conversion chances the base to 0, you divide by 0 (not > >good) and don't get a remainder. Actually procedure number() > >protects against a base less than 2 or greater than 36 so you > >just prevent conversion altogether. > > A bug in number(), looks like. (base = 0) is intended to let the > input string determine the base (16 if 0x*, else 8 if 0* else 10). > Like simple_strtol(). > -- No. number() is an internal helper function. The base is correctly set before number() is called. The reported bug had nothing at all to do with the internal variable, base. Instead it had to do with not allowing a leading "0x" for hexadecimal numbers as the standard allows (or has been interpreted to allow).
This is simply fixed by inspection of the string variable before a conversion is attempted.
Cheers, Dick Johnson Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips). Why is the government concerned about the lunatic fringe? Think about it.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |