From a7ed7cd4e92b9f9e4a88244086d21cc18e37e088 Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Sun, 23 Aug 2020 00:27:53 +0300 Subject: nvi: add new package at 1.81.6 --- editors/nvi/patches/nvi-08-lfs.patch | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 editors/nvi/patches/nvi-08-lfs.patch (limited to 'editors/nvi/patches/nvi-08-lfs.patch') diff --git a/editors/nvi/patches/nvi-08-lfs.patch b/editors/nvi/patches/nvi-08-lfs.patch new file mode 100644 index 0000000..2ab85d9 --- /dev/null +++ b/editors/nvi/patches/nvi-08-lfs.patch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 08lfs.dpatch by +## +## DP: Insert a safety check to save large files from being overwritten. + +@DPATCH@ +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 -- cgit v1.2.3