git.samba.org
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c325014
)
Ensure we don't prematurely clean out the bytes read.
author
Jeremy Allison
<jra@samba.org>
Wed, 31 Oct 2007 00:42:02 +0000
(17:42 -0700)
committer
Jeremy Allison
<jra@samba.org>
Wed, 31 Oct 2007 00:42:02 +0000
(17:42 -0700)
Jeremy.
(This used to be commit
247675695dfbff503b5792de62f8bb1567ea2327
)
source3/smbd/vfs.c
patch
|
blob
|
history
diff --git
a/source3/smbd/vfs.c
b/source3/smbd/vfs.c
index c1c1939153db957bf32f81a0823f2e2ab3d7e3a5..21a12ae766a21b2ef248e9ef89951b577731fc3c 100644
(file)
--- a/
source3/smbd/vfs.c
+++ b/
source3/smbd/vfs.c
@@
-428,12
+428,15
@@
ssize_t vfs_write_data(struct smb_request *req,
if (req && req->unread_bytes) {
SMB_ASSERT(req->unread_bytes == N);
if (req && req->unread_bytes) {
SMB_ASSERT(req->unread_bytes == N);
- req->unread_bytes = 0;
- return SMB_VFS_RECVFILE(smbd_server_fd(),
+ ret = SMB_VFS_RECVFILE(smbd_server_fd(),
fsp,
fsp->fh->fd,
(SMB_OFF_T)-1,
N);
fsp,
fsp->fh->fd,
(SMB_OFF_T)-1,
N);
+ if (ret != -1) {
+ req->unread_bytes = 0;
+ }
+ return ret;
}
while (total < N) {
}
while (total < N) {
@@
-460,12
+463,15
@@
ssize_t vfs_pwrite_data(struct smb_request *req,
if (req && req->unread_bytes) {
SMB_ASSERT(req->unread_bytes == N);
if (req && req->unread_bytes) {
SMB_ASSERT(req->unread_bytes == N);
- req->unread_bytes = 0;
- return SMB_VFS_RECVFILE(smbd_server_fd(),
+ ret = SMB_VFS_RECVFILE(smbd_server_fd(),
fsp,
fsp->fh->fd,
offset,
N);
fsp,
fsp->fh->fd,
offset,
N);
+ if (ret != -1) {
+ req->unread_bytes = 0;
+ }
+ return ret;
}
while (total < N) {
}
while (total < N) {