From: Alan T. DeKok Date: Fri, 8 Jul 2022 13:22:10 +0000 (-0400) Subject: fixes and tests for regexes X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a80c43693aed714f1821aaa6aa322e4951db54c;p=thirdparty%2Ffreeradius-server.git fixes and tests for regexes --- diff --git a/src/lib/server/cf_file.c b/src/lib/server/cf_file.c index 3b05e823b4b..8cb745e61c5 100644 --- a/src/lib/server/cf_file.c +++ b/src/lib/server/cf_file.c @@ -1175,6 +1175,15 @@ static uint8_t const *skip_string(uint8_t const *p, char c) continue; } + /* + * Double-quoted strings use \000 + * Regexes use \0 + */ + if (c == '/') { + p++; + continue; + } + if (!isdigit((int) p[2]) || !isdigit((int) p[3])) { return NULL; } diff --git a/src/tests/keywords/if-regex-nil b/src/tests/keywords/if-regex-nil new file mode 100644 index 00000000000..5929174c4cc --- /dev/null +++ b/src/tests/keywords/if-regex-nil @@ -0,0 +1,8 @@ +# +# PRE: if +# +if (&User-Name !~ /^\0/) { + success +} else { + test_fail +} \ No newline at end of file