[OpenSER-Devel] Bug in hash.c of permission module
Klaus Darilion
klaus.mailinglists at pernau.at
Mon Feb 4 11:09:26 UTC 2008
Hi Giovanni!
Please add it to the openser bugtracker on sourceforge.
thanks
klaus
Giovanni Coriasco schrieb:
> Hi,
>
> I'm running an Openser version 1.3.0 on a Linux machine.
>
> I think I found a bug in the "permissions" module. The allow_address()
> and allow_source_address() operate properly only with /0, /8, /16, /24,
> /32 netmasks so far.
>
> The problem is in the fact that a shift operator (<<) is used with
> addresses in network byte order.
>
> In fact, an IP address A.B.C.D has the following form in network byte
> order:
>
> ddddddddccccccccbbbbbbbbaaaaaaaa
>
> where the aaa are the bits (in LITTLE endian format) of the byte A.
>
> The problem with the shift operation is that the byte order is BIG
> endian, BUT each byte has a LITTLE endian order for its bits.
>
> Instead, in host byte order, both bits and bytes have little endian
> format and you just have to invert the shift operation (<< to >> and >>
> to <<).
>
> The patch I wrote converts the address to host byte order before
> shifting and convert back the result to network byte order.
>
> You can find my patch attached to this email: I hope you will find it
> useful.
>
> Bye
>
> Giovanni
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Devel mailing list
> Devel at lists.openser.org
> http://lists.openser.org/cgi-bin/mailman/listinfo/devel
More information about the Devel
mailing list