Segfault in module accessing custom attributes fields
aland at deployingradius.com
Mon Feb 16 15:36:10 CET 2009
D'AVELLA STEFANO wrote:
> I am having some problems in trying to write a little module to handle
> some custom attributes. Because I have a project regarding very specific
> requirements I preferred to write a module instead of trying to use the
> existing ones, so I can know in a better way where to go to change
> things when I want a different behaviour.
The existing modules have a lot of examples of working code, too.
> What I am doing right now is trying to have a testbed with a client, a
> proxy and a server, exchanging some custom attributes saved in the users
> file of the server and transmitted with auth-accept messages.
Please use the *correct* names for everything. Otherwise, we might
not be sure what you're talking about... and neither will you.
> The proxy should intercept these new attributes and save them in a
> specific syntax in a local file.
> I managed to create and transfer successfully the custom attributes and
> to have them saved in a local file by the proxy.
> The problem is that if these attributes have a string as a value, there
> is no problem in reading it using the field vp_strvalue.
> If these attributes have the attribute ipv6address, when I try to access
> to them using vp_ipv6address I get a segFault. The values are correctly
> stored in the packets because I can see them with wireshark and the
> client receives them successfully.
See doc/bugs for instructions on debugging the server with gdb.
I suspect that your code is simply wrong. There is no reason why one
data type should work, and another should fail.
Again, existing modules && the server core have examples of working
with IPv6 attributes. See those examples for what works.
> In the documentation (the wiki) there is written to access the
> attributes through request->packet->vps but I managed to do it only with
You "managed to do it"? There's a reason why one works and the other
doesn't. Usually, it's a simple reason.
> (initially I wanted to save this local file using
> the post-proxy section because I was thinking that it was the best place
> to do it (it's an action to do when the proxy receives the reply from
> the server) but I couldn't access the right packet through the API and
> so I found out that I could do it in the post-auth phase)
Nonsense. You can access the proxy reply in the post-proxy section.
A lot of other code in the server already does this.
> I would not want to disturb you too much but the problem is that it
> seems to me that there is a bit of lack in the documentation regarding
> how write modules in the newer versions of freeradius and so I didn't
> know other places to look (I have been looking at the source code for
> all the day but maybe I can do it faster if pointed into the right
Again, there is 10's of 1000's of lines of code in the server that
accesses attributes in different lists, of different types. That code
works, and can be used as a basis for your code, or as an opportunity to
More information about the Freeradius-Users