From: Subject: Insert a safety check to save large files from being overwritten. diff -Naur nvi-1.81.6.orig/common/exf.c nvi-1.81.6/common/exf.c --- nvi-1.81.6.orig/common/exf.c 2007-11-18 17:41:42.000000000 +0100 +++ nvi-1.81.6/common/exf.c 2008-05-01 18:09:55.000000000 +0200 @@ -157,6 +157,18 @@ */ if (file_spath(sp, frp, &sb, &exists)) return (1); + /* + * On LFS systems, it's possible that stat returned an error because + * the file is >2GB, which nvi would normally treat as "doesn't exist" + * and eventually overwrite. That's no good. Rather than mess with + * every stat() call in file_spath, we'll just check again here. + */ + if (!exists && stat(frp->name, &sb)) { + if (errno == EOVERFLOW) { + msgq(sp, M_ERR, "File too large (>2GB, probably)"); + goto err; + } + } /* * Check whether we already have this file opened in some