|
@@ -275,9 +275,10 @@ static int regex_match_middle(char *str, struct regex *r, int len)
|
|
|
|
|
|
static int regex_match_end(char *str, struct regex *r, int len)
|
|
|
{
|
|
|
- char *ptr = strstr(str, r->pattern);
|
|
|
+ int strlen = len - 1;
|
|
|
|
|
|
- if (ptr && (ptr[r->len] == 0))
|
|
|
+ if (strlen >= r->len &&
|
|
|
+ memcmp(str + strlen - r->len, r->pattern, r->len) == 0)
|
|
|
return 1;
|
|
|
return 0;
|
|
|
}
|