Regex problem with 3.0.5 and correct_escapes = false

Alan DeKok aland at deployingradius.com
Sat Nov 22 15:12:02 CET 2014


unbeliever012000 wrote:
> My existing config has the following line within the sites authorised
> section;
>  
> If ( User-Name =~ /(.*)\/(.*)\\^(.*)/i <file:///\\%5e(.*)\i> ) {

  That's arguably wrong, even for the old code.  If it worked, it was a bug.

> Yes this is nasty, but required to handle a specific format and worked
> under 3.0.x up to 3.0.5. Under 3.0.5 with correct_escapes set to false
> this is now generating an error of “Unexpected test after condition” on
> the second ‘(‘. I am presuming the ‘\/’ is being seen as the end of the
> regex within the parser.

  Yes.  It *should* have been '\\/'

> Setting correct_escapes to true, and changing the regex to
> /(.*)\/(.*)\^(.*)/i <file:///\\%5e(.*)\i> works. I am  not convinced
> this is worth fixing, after I think everyone would agree the regex reads
> better now. However, it maybe worth extending the radius.conf comment
> around correct_escapes to include this edge case.

  It's a small edge case.  I don't see it as a major issue.

  Alan DeKok.


More information about the Freeradius-Devel mailing list