Vendor IDs assigned in the dictionary appear to get sign extended in the attributes stream. FreeRADIUS allows only at 2 byte Vendor ID in the dictionary, the RFC specifies 4 (first octet always 0). When cast to a 4 byte value the sign is being carried which causes problems on the client when it decodes the 4 byte value as an unsigned 4 byte integer.

Here is the raw bits of the first 6 bytes of my attribute as I change the Vendor ID from 32767 to 32768.

Type    | Length | Vendor ID = 0x7FFF (32767)        |
00011010|00010000|00000000|00000000|01111111|11111111|...

Type    |        | Vendor ID = 0x8000 (32768)        |
00011010|00010000|11111111|11111111|10000000|00000000|...

If FreeRADIUS is going to limit to 2 bytes then it must mask off the top 2 bytes of the 4 byte field before sending.

BTW, does anyone know what one has to do to get a registered vendor number?

--
Jacob S. Barrett
[EMAIL PROTECTED]
www.amduat.net

"I don't suffer from insanity, I enjoy every minute of it."



- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to