>   Seems the netfilter guys found a major problem with strtoul(). 
> Thankfully the same fix should work for us as well.
> 
> 
> Luciano Coelho wrote:
> <snip>
>  >
>  > Not easily.  I found that there is a bug in strtoul (and strtoull for
>  > that matter) that causes the long to overflow if there are valid digits
>  > after the maximum possible digits for the base.  For example if you try
>  > to strtoul 0xfffffffff (with 9 f's) the strtoul will overflow and come
>  > up with a bogus result.  I can't easily truncate the string to avoid
>  > this problem, because with decimal or octal, the same valid value would
>  > take more spaces.  I could do some magic here, checking whether it's a
>  > hex, dec or oct and truncate appropriately, but that would be very ugly.
>  >
>  > So the simplest way I came up with was to use strtoull and return
>  > -EINVAL if the value exceeds 32 bits. ;)
>  >

Thanks for that Amos. I have to admit that when I was doing my initial
browse of the iptables mark module, I noticed that they had their own
xtables_strtoui function which limited the size. I'll check this out a
bit more thoroughly.

I'm away at the moment with minimal internet access, but I hope to pick
up again on the patch shortly.

Cheers,

Andy


Reply via email to