]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
fixes and tests for regexes
authorAlan T. DeKok <aland@freeradius.org>
Fri, 8 Jul 2022 13:22:10 +0000 (09:22 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 8 Jul 2022 13:22:10 +0000 (09:22 -0400)
src/lib/server/cf_file.c
src/tests/keywords/if-regex-nil [new file with mode: 0644]

index 3b05e823b4b8102b3c339242eeefedc56ca72927..8cb745e61c5e328a3e80f4a32cfe7eda4468557b 100644 (file)
@@ -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 (file)
index 0000000..5929174
--- /dev/null
@@ -0,0 +1,8 @@
+#
+#  PRE: if
+#
+if (&User-Name !~ /^\0/) {
+       success
+} else {
+       test_fail
+}
\ No newline at end of file