Revision: 363
http://vcs.pcre.org/viewvc?view=rev&revision=363
Author: ph10
Date: 2008-07-10 17:24:33 +0100 (Thu, 10 Jul 2008)
Log Message:
-----------
Previous change to pcretest wasn't correct for POSIX mode (needs zero
terminator).
Modified Paths:
--------------
code/trunk/pcretest.c
Modified: code/trunk/pcretest.c
===================================================================
--- code/trunk/pcretest.c 2008-07-10 16:06:45 UTC (rev 362)
+++ code/trunk/pcretest.c 2008-07-10 16:24:33 UTC (rev 363)
@@ -2029,10 +2029,21 @@
len = q - dbuffer;
/* Move the data to the end of the buffer so that a read over the end of
- the buffer will be seen by valgrind, even if it doesn't cause a crash. */
+ the buffer will be seen by valgrind, even if it doesn't cause a crash. If
+ we are using the POSIX interface, we must include the terminating zero. */
- memmove(bptr + buffer_size - len, bptr, len);
- bptr += buffer_size - len;
+#if !defined NOPOSIX
+ if (posix || do_posix)
+ {
+ memmove(bptr + buffer_size - len - 1, bptr, len + 1);
+ bptr += buffer_size - len - 1;
+ }
+ else
+#endif
+ {
+ memmove(bptr + buffer_size - len, bptr, len);
+ bptr += buffer_size - len;
+ }
if ((all_use_dfa || use_dfa) && find_match_limit)
{