diff options
-rw-r--r-- | src/resv.c | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -228,15 +228,22 @@ int valid_wild_card_simple(const char *data) { const unsigned char *p = (const unsigned char *)data; + unsigned char tmpch = '\0'; int nonwild = 0; - while (*p != '\0') + while ((tmpch = *p++)) { - if ((*p == '\\' && *++p) || (*p && !IsMWildChar(*p))) - if (++nonwild == ConfigFileEntry.min_nonwildcard_simple) - return 1; - if (*p != '\0') + if (tmpch == '\\') + { ++p; + if (++nonwild >= ConfigFileEntry.min_nonwildcard_simple) + return 1; + } + else if (!IsMWildChar(tmpch)) + { + if (++nonwild >= ConfigFileEntry.min_nonwildcard_simple) + return 1; + } } return 0; |