freeradius3: filling vp_strvalue for INTEGER attributes - off by default?
aland at deployingradius.com
Fri Feb 26 15:04:46 CET 2016
On Feb 26, 2016, at 8:59 AM, Boris Lytochkin <lytboris at yandex-team.ru> wrote:
> Yep, I did a fix and the code now works correctly. Still the question is unanswered - why 2.1 code had correct vp_strvalue and 3.0 does not.
> Funny thing, VALUE_PAIR_DATA in 2.1 is a union too so I have no idea how the code below ever worked. :)
In 2.0, vp_strvalue was a fixed-length array in all VALUE_PAIRs. So it's possible to put a string value there for non-string attributes. The problem was that the array was fixed length. So longer attributes were impossible. Even ones which were used internally, and didn't go into a RADIUS packet.
In 3.0, vp_strvalue is a pointer to a character array. That character array can be any length. As a result, we can have attributes of any length.
But... there's no longer a fixed-length array associated with an "integer" attribute. So you can't look at the vp_strvalue, because it doesn't exist.
More information about the Freeradius-Devel