[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