Fix an error in backtracking (apparently exacerbated by escapes).
[ircu2.10.12-pk.git] / ircd / match.c
index 1715b539458b12ea3f1f9e87dc88fdb55eb9de58..b585053c795348900039553fae8c29f037fea525 100644 (file)
@@ -201,12 +201,14 @@ int match(const char *mask, const char *name)
       return 1;
     m = m_tmp;
     n = ++n_tmp;
+    if (*n == '\0')
+      return 1;
     break;
   case '\\':
     m++;
     /* allow escaping to force capitalization */
     if (*m++ != *n++)
-      return 1;
+      goto backtrack;
     break;
   case '*': case '?':
     for (star_p = 0; ; m++) {