Messages in this thread | | | Date | Mon, 14 Dec 2009 09:08:02 +0800 | From | Li Zefan <> | Subject | Re: [PATCH 4/4] tracing/filters: Fix MATCH_EBD_ONLY filter matching |
| |
>> 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)) > > Please use memcmp() == 0, I've seen too many bugs with !*cmp as well as > with *cmp, because humans tend to think instinctively when reading this > that ! is not a match. With "== 0" we think that "==" is a match and > "!=" is a miss. >
Though I sometimes don't care much about this, I do think memcmp() == 0 is better.
| |