--- nmh-1.6/sbr/m_getfld.c +++ nmh-1.6/sbr/m_getfld.c @@ -919,16 +919,16 @@ 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 --str; + return ((unsigned char *)str); } + return 0; }