[SCM] Samba Shared Repository - branch v3-3-test updated -
release-3-2-0pre2-4738-g6070702
Jeremy Allison
jra at samba.org
Thu Dec 25 20:12:43 GMT 2008
The branch, v3-3-test has been updated
via 60707022622068dd5df5c7b5aa82e0d34ed544f5 (commit)
from 3d22b77f1ac5e8f83d1063d87c68e60655a3ed6b (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test
- Log -----------------------------------------------------------------
commit 60707022622068dd5df5c7b5aa82e0d34ed544f5
Author: Jeremy Allison <jra at samba.org>
Date: Thu Dec 25 12:12:22 2008 -0800
Fix bug #5990 - strict allocate should be checked before ftruncate
reported by and based on a patch by Yasuma Takeda <yasuma at osstech.co.jp>.
Jeremy.
-----------------------------------------------------------------------
Summary of changes:
source/modules/vfs_default.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/modules/vfs_default.c b/source/modules/vfs_default.c
index 09ad3cb..d306b0f 100644
--- a/source/modules/vfs_default.c
+++ b/source/modules/vfs_default.c
@@ -714,6 +714,20 @@ static int strict_allocate_ftruncate(vfs_handle_struct *handle, files_struct *fs
if (st.st_size > len)
return sys_ftruncate(fsp->fh->fd, len);
+ /* available disk space is enough or not? */
+ if (lp_strict_allocate(SNUM(fsp->conn))){
+ SMB_BIG_UINT space_avail;
+ SMB_BIG_UINT bsize,dfree,dsize;
+
+ space_avail = get_dfree_info(fsp->conn,fsp->fsp_name,false,&bsize,&dfree,&dsize);
+ /* space_avail is 1k blocks */
+ if (space_avail == (SMB_BIG_UINT)-1 ||
+ ((SMB_BIG_UINT)space_to_write/1024 > space_avail) ) {
+ errno = ENOSPC;
+ return -1;
+ }
+ }
+
/* Write out the real space on disk. */
if (SMB_VFS_LSEEK(fsp, st.st_size, SEEK_SET) != st.st_size)
return -1;
--
Samba Shared Repository
More information about the samba-cvs
mailing list