[SCM] Samba Shared Repository - branch v3-6-test updated
Jeremy Allison
jra at samba.org
Wed Dec 15 18:22:58 MST 2010
The branch, v3-6-test has been updated
via 6d6dc07 Fix old bug in openX code, exposed when "strict allocate" is set to true.
from 716e36d Change strict allocate to default to true. (cherry picked from commit 820ea22a07b062b1717d35de8fa7051fc1067c3f)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test
- Log -----------------------------------------------------------------
commit 6d6dc074280259221de203a5d3c4cf149e69f3b6
Author: Jeremy Allison <jra at samba.org>
Date: Wed Dec 15 16:49:04 2010 -0800
Fix old bug in openX code, exposed when "strict allocate" is set to true.
We need to return the file size here, not the allocation size, but
we were not updating the stat struct after the vfs_set_filesize()
call. Ensure we always use fresh data in openX replies.
Jeremy.
(cherry picked from commit 8764576e1068455fd2f5035ac1ea31962e471361)
-----------------------------------------------------------------------
Summary of changes:
source3/smbd/reply.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 26badc4..e5067cc 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -1985,12 +1985,16 @@ void reply_open_and_X(struct smb_request *req)
reply_nterror(req, NT_STATUS_DISK_FULL);
goto out;
}
- smb_fname->st.st_ex_size =
- SMB_VFS_GET_ALLOC_SIZE(conn, fsp, &smb_fname->st);
+ status = vfs_stat_fsp(fsp);
+ if (!NT_STATUS_IS_OK(status)) {
+ close_file(req, fsp, ERROR_CLOSE);
+ reply_nterror(req, status);
+ goto out;
+ }
}
- fattr = dos_mode(conn, smb_fname);
- mtime = convert_timespec_to_time_t(smb_fname->st.st_ex_mtime);
+ fattr = dos_mode(conn, fsp->fsp_name);
+ mtime = convert_timespec_to_time_t(fsp->fsp_name->st.st_ex_mtime);
if (fattr & aDIR) {
close_file(req, fsp, ERROR_CLOSE);
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
@@ -2038,7 +2042,7 @@ void reply_open_and_X(struct smb_request *req)
} else {
srv_put_dos_date3((char *)req->outbuf,smb_vwv4,mtime);
}
- SIVAL(req->outbuf,smb_vwv6,(uint32)smb_fname->st.st_ex_size);
+ SIVAL(req->outbuf,smb_vwv6,(uint32)fsp->fsp_name->st.st_ex_size);
SSVAL(req->outbuf,smb_vwv8,GET_OPENX_MODE(deny_mode));
SSVAL(req->outbuf,smb_vwv11,smb_action);
--
Samba Shared Repository
More information about the samba-cvs
mailing list