diff options
author | Brian Feldman <green@FreeBSD.org> | 2001-10-29 19:39:39 +0000 |
---|---|---|
committer | Brian Feldman <green@FreeBSD.org> | 2001-10-29 19:39:39 +0000 |
commit | 1976a264009856a218efadcbd82809ecf9ccc846 (patch) | |
tree | 38b556bd19131e5807472ed0fd2f9d2435cddfbf /security/cfs | |
parent | Update to Vim 6.0 patchlevel 32 (diff) |
Fix a possible-corruption-at-end-of-file bug.
PR: ports/30120
Submitted by: Scott Renfro <scott@renfro.org>
Notes
Notes:
svn path=/head/; revision=49339
Diffstat (limited to 'security/cfs')
-rw-r--r-- | security/cfs/files/patch-cfs_fh.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/security/cfs/files/patch-cfs_fh.c b/security/cfs/files/patch-cfs_fh.c new file mode 100644 index 000000000000..f474d23b7100 --- /dev/null +++ b/security/cfs/files/patch-cfs_fh.c @@ -0,0 +1,16 @@ +--- cfs_fh.c.orig Mon Aug 27 01:47:52 2001 ++++ cfs_fh.c Mon Aug 27 01:48:41 2001 +@@ -177,6 +177,13 @@ + perror("write"); + return -1; + } ++ /* due to the way the file is padded we may actually have to ++ truncate it here. This happens when the write is at the end of ++ the file, is shorter than CFSBLOCK and brings the file to a length ++ which is evenly dividable by CFSBLOCK */ ++ if (offset+len > dtov(sb.st_size) && vtod(offset+len) < sb.st_size) { ++ ftruncate(fd, vtod(offset+len)); ++ } + /* iolen may contain CFSBLOCK extra chars */ + return(dtov(iolen)-fronterr); + } |