Index is not an integer (segfault)

Arran Cudbard-Bell a.cudbardb at freeradius.org
Thu Dec 17 15:50:55 CET 2015


> On 17 Dec 2015, at 09:47, Alan DeKok <aland at deployingradius.com> wrote:
> 
> On Dec 17, 2015, at 4:50 AM, Franks Andy (IT Technical Architecture Manager) <Andy.Franks at sath.nhs.uk> wrote:
>> Ideally, I'd like to expand in an if statement and compare, i.e. if ( "%{xlat:control:Tmp-Integer-1[%{control:Tmp-Integer-0}]}" > 1 ),
> 
>  Hmm... you shouldn't be able to dynamically expand non-string attributes.  The idea behind %{xlat:} is that you could do something like:
> 
> 	Tmp-String-0 := "sql: SELECT ..."
> 
>  and then do:
> 
> 	Blah = "%{xlat:Tmp-String-0}"
> 
>  i.e. the contents of the %{xlat} expansion are another string to be expanded.
> 
>  You're not using it that way.  You're trying to dynamically expand an array reference, and then use that to get an integer.  And you're *not* dynamically expanding the integer.
> 
>  So the %{xlat} expansion is not what you want.  You want something else.  Something which isn't yet implemented.
> 
>  I'll see if I can think of something.

He wants:

	&Attribute[&index]

Which is pretty easy to implement.

Just the tmpl parser and the tmpl cursor code needs to change.  I believe everything uses that now for resolving array offsets in attributes.

-Arran

Arran Cudbard-Bell <a.cudbardb at freeradius.org>
FreeRADIUS development team

FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 872 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20151217/54768dfc/attachment.sig>


More information about the Freeradius-Users mailing list