Regex match on a variable is not working if length is long

Arran Cudbard-Bell a.cudbardb at
Wed Dec 11 15:00:46 CET 2019

> On 11 Dec 2019, at 20:48, Alan DeKok <aland at> wrote:
> On Dec 11, 2019, at 4:06 AM, Chinnapaiyan, Nagamani <Nagamani.Chinnapaiyan at> wrote:
>> This one works,
>> (6)        if ( "%{control:Tmp-String-7}" =~ /vendor-options.*\(number 43\)\(value (([0-9a-fA-F]{2}:)*[0-9a-fA-F]{2})/ ) {
>  One possibility is to fix the expression.  You're not using the capture groups, so there's no need to the regex engine to store them.
>  You should be able to use:
> 	 if (&control:Tmp-String-7 =~ /vendor-options.*\(number 43\)\(value (?:(?:[0-9a-fA-F]{2}:)*[0-9a-fA-F]{2})/ ) {

or it'd be:

	if (&control:Tmp-String-7 =~ /vendor-options.*\(number 43\)\(value ((?:[0-9a-fA-F]{2}:)*[0-9a-fA-F]{2})/ ) {

if you wanted to extract the value still.

I've pushed a change to increase the JIT stack size, and added string output for the extra error codes, but disabling the inner capture group as Alan suggested, will likely fix the issue.


Arran Cudbard-Bell <a.cudbardb at>
FreeRADIUS Development Team

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

More information about the Freeradius-Users mailing list