Index: StreamDevice-2/src/StreamBuffer.cc =================================================================== RCS file: /afs/psi.ch/user/z/zimoch/.cvsroot/StreamDevice2/src/StreamBuffer.cc,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** StreamDevice-2/src/StreamBuffer.cc 15 May 2006 11:32:44 -0000 1.5 --- StreamDevice-2/src/StreamBuffer.cc 19 May 2006 10:06:08 -0000 1.6 *************** *** 115,132 **** start += len; if (start < 0) start = 0; } if (!m || size <= 0) return start; // find empty string const char* s = static_cast(m); char* b = buffer+offs; ! char* p = b; long i; ! while ((p = static_cast(memchr(p, s[0], b+len-p)))) { ! for (i=1; p[i] == s[i]; i++) { ! if (i >= size) return p-b; } ! p += i; } return -1; } --- 115,134 ---- start += len; if (start < 0) start = 0; } + if (start >= len-size+1) return -1; // find nothing after end if (!m || size <= 0) return start; // find empty string const char* s = static_cast(m); char* b = buffer+offs; ! char* p = b+start; long i; ! while ((p = static_cast(memchr(p, s[0], b-p+len-size+1)))) { ! i = 1; ! while (p[i] == s[i]) { ! if (++i >= size) return p-b; } ! p++; } return -1; }