diff options
author | green <green@FreeBSD.org> | 2001-10-30 03:39:39 +0800 |
---|---|---|
committer | green <green@FreeBSD.org> | 2001-10-30 03:39:39 +0800 |
commit | 336c0334da377d29ccf25046b7fbae7a705976a7 (patch) | |
tree | 1f74d15ec472bfb2d8298c2d870ed4d59526958d /security/cfs/files | |
parent | 885ce0ae8e667b853461787c796ec1e4a91d51dd (diff) | |
download | freebsd-ports-gnome-336c0334da377d29ccf25046b7fbae7a705976a7.tar.gz freebsd-ports-gnome-336c0334da377d29ccf25046b7fbae7a705976a7.tar.zst freebsd-ports-gnome-336c0334da377d29ccf25046b7fbae7a705976a7.zip |
Fix a possible-corruption-at-end-of-file bug.
PR: ports/30120
Submitted by: Scott Renfro <scott@renfro.org>
Diffstat (limited to 'security/cfs/files')
-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); + } |