1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-06 17:53:13 +02:00

api: fix bug in string_match when mask begins and ends with "*"

The bug was string_match returning 0 (instead of 1) if mask begins and ends with
"*" and if string and mask have same length (except both "*") with same content:

string_match("abc",  "*abc*", 0) == 0  // BUG: it should return 1
string_match("abcd", "*abc*", 0) == 1  // OK
This commit is contained in:
Sebastien Helleu
2013-03-11 18:09:33 +01:00
parent cc3fb26024
commit afc1dd4f6b
2 changed files with 3 additions and 2 deletions
+1 -1
View File
@@ -412,7 +412,7 @@ string_match (const char *string, const char *mask, int case_sensitive)
if ((mask[0] == '*') && (last == '*'))
{
/* not enough chars in string to match */
if (len_string < len_mask - 1)
if (len_string < len_mask - 2)
return 0;
/* keep only relevant chars in mask for searching string */
mask2 = string_strndup (mask + 1, len_mask - 2);