[svn] xline/resv wildcard checking:

- count escaped (\) characters as one nonwild
- accept strings without wilds no matter how short they are
This commit is contained in:
jilles 2007-06-04 09:04:49 -07:00
parent 5832fa369b
commit 7d08aa8911
3 changed files with 19 additions and 4 deletions

View file

@ -1,3 +1,12 @@
jilles 2007/05/30 10:22:25 UTC (20070530-3498)
Log:
Tweak some comments in sno_whois extension.
Changes: Modified:
+2 -2 trunk/extensions/sno_whois.c (File Modified)
jilles 2007/05/30 10:22:01 UTC (20070530-3496)
Log:
Tweak NEWS a little.

View file

@ -1 +1 @@
#define SERNO "20070530-3496"
#define SERNO "20070530-3498"

View file

@ -29,7 +29,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* $Id: s_newconf.c 3161 2007-01-25 07:23:01Z nenolod $
* $Id: s_newconf.c 3508 2007-06-04 16:04:49Z jilles $
*/
#include "stdinc.h"
@ -595,6 +595,7 @@ valid_wild_card_simple(const char *data)
const char *p;
char tmpch;
int nonwild = 0;
int wild = 0;
/* check the string for minimum number of nonwildcard chars */
p = data;
@ -604,9 +605,11 @@ valid_wild_card_simple(const char *data)
/* found an escape, p points to the char after it, so skip
* that and move on.
*/
if(tmpch == '\\')
if(tmpch == '\\' && *p)
{
p++;
if(++nonwild >= ConfigFileEntry.min_nonwildcard_simple)
return 1;
}
else if(!IsMWildChar(tmpch))
{
@ -614,9 +617,12 @@ valid_wild_card_simple(const char *data)
if(++nonwild >= ConfigFileEntry.min_nonwildcard_simple)
return 1;
}
else
wild++;
}
return 0;
/* strings without wilds are also ok */
return wild == 0;
}
time_t