Marc Lehmann wrote:
>
> On Wed, Dec 29, 1999 at 04:43:20PM +1100, David Hodson <[EMAIL PROTECTED]>
>wrote:
> > the value to check is loaded into a (signed) int variable, and strtol()
> > The easy workaround is to search for a four-byte string value instead.
>
> It would occur to me that the real problem is strtol overflowing. Why does
> strtol overflow at all? POSIX requires strtol to be able to convert _all_
> long values.
Well, specifying a magic of "0,long,0x802A5FD7" calls
strtol("0x802A5FD7"),
which returns MAX_LONG (0x7FFFFFFF) (and presumably an error). strtoul()
might work better, but as I said, I didn't want to break anyone else's
magic numbers.
> Would specifying the right (signed) constant help?
Maybe. But bits is bits, you know.
> If you think all this should be documented somewhere, then you are
> definitely right ;)
Agreed.
--
David Hodson -- [EMAIL PROTECTED] -- this night wounds time