--- e_err.c.orig	Sun May 14 23:39:39 2000
+++ e_err.c	Thu Feb  1 15:38:37 2001
@@ -115,6 +115,7 @@
 	}
 
 	res = vsnprintf(p, len, fmt, args);
+	if (res >= len) res = len - 1;
 	len -= res;
 	p += res;
 
--- spegla.c.orig	Sat May 27 22:38:14 2000
+++ spegla.c	Thu Feb  1 15:39:24 2001
@@ -728,7 +728,7 @@
 #ifdef ULTRIX
 	if ((f.fd_req.bfreen * 1024) < minfree)
 #else
-	if ((f.f_bsize * f.f_bavail) < minfree)
+	if (((long long)f.f_bsize * f.f_bavail) < minfree)
 #endif
 		e_errx(1, "%s: Not enough space left", path);
 
@@ -953,6 +953,7 @@
 		}
 		buf[i] = p[j];
 	}
+	buf[i] = '\0';
 	*val = buf;
 ret:
 	if (show)
