--- sbr/m_getfld.orig.c 2004-07-25 13:18:04.570397179 -0700 +++ sbr/m_getfld.c 2004-07-25 13:25:36.471839770 -0700 @@ -730,18 +730,18 @@ register char *ep = pat + patln; register char pc = *pat++; - for(;;) { - while (pc != *str++) - if (str > es) - return 0; + for(;str <= es; str++) { + if (pc != *str) + continue; if (str > es+1) return 0; - sp = str; pp = pat; + sp = str+1; pp = pat; while (pp < ep && *sp++ == *pp) pp++; if (pp >= ep) - return ((unsigned char *)--str); + return ((unsigned char *)str); } + return 0; }