patch 8.1.0593: illegal memory access in libvterm test
Problem: Illegal memory access in libvterm test.
Solution: Fix off-by-one error.
diff --git a/src/libvterm/Makefile b/src/libvterm/Makefile
index 6eacab7..179ee10 100644
--- a/src/libvterm/Makefile
+++ b/src/libvterm/Makefile
@@ -52,6 +52,9 @@
MANDIR=$(PREFIX)/share/man
MAN3DIR=$(MANDIR)/man3
+# Uncomment to check for memory access errors with valgrind.
+# VALGRIND=1
+
all: $(LIBRARY) $(BINFILES)
$(LIBRARY): $(OBJECTS)
diff --git a/src/libvterm/src/vterm.c b/src/libvterm/src/vterm.c
index 28613b9..9025da4 100644
--- a/src/libvterm/src/vterm.c
+++ b/src/libvterm/src/vterm.c
@@ -169,9 +169,9 @@
#else
written = vsprintf(buffer, format, args);
- if(written >= (int)(vt->outbuffer_len - vt->outbuffer_cur)) {
+ if(written >= (int)(vt->outbuffer_len - vt->outbuffer_cur - 1)) {
/* output was truncated */
- written = vt->outbuffer_len - vt->outbuffer_cur;
+ written = vt->outbuffer_len - vt->outbuffer_cur - 1;
}
if (written > 0)
{
diff --git a/src/libvterm/t/run-test.pl b/src/libvterm/t/run-test.pl
index 4ef0f26..12e1180 100644
--- a/src/libvterm/t/run-test.pl
+++ b/src/libvterm/t/run-test.pl
@@ -16,7 +16,7 @@
{
local $ENV{LD_LIBRARY_PATH} = ".libs";
my @command = "t/.libs/harness";
- unshift @command, "valgrind", "--quiet", "--error-exitcode=126" if $VALGRIND;
+ unshift @command, "valgrind", "--tool=memcheck", "--leak-check=yes", "--num-callers=25", "--log-file=valgrind.out", "--error-exitcode=126" if $VALGRIND;
$hpid = open2 $hout, $hin, @command or die "Cannot open2 harness - $!";
}
diff --git a/src/version.c b/src/version.c
index 4e79d28..b1de233 100644
--- a/src/version.c
+++ b/src/version.c
@@ -800,6 +800,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 593,
+/**/
592,
/**/
591,