Fix bug #5477 - recvfile code was broken.
authorJeremy Allison <jra@samba.org>
Tue, 20 May 2008 19:09:48 +0000 (12:09 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 20 May 2008 19:09:48 +0000 (12:09 -0700)
Jeremy.
(This used to be commit 830337f054a6c0646d85df33d9958e99283e727a)

source3/lib/recvfile.c
source3/smbd/process.c

index 6e2093335033576e08122ec82ffd7931793bc18c..513742ce8f8edfa298ab3f0721fe85588d55ebd2 100644 (file)
@@ -58,6 +58,11 @@ static ssize_t default_sys_recvfile(int fromfd,
        size_t total_written = 0;
        char *buffer = NULL;
 
+       DEBUG(10,("default_sys_recvfile: from = %d, to = %d, "
+               "offset=%.0f, count = %lu\n",
+               fromfd, tofd, (double)offset,
+               (unsigned long)count));
+
        if (count == 0) {
                return 0;
        }
@@ -143,6 +148,11 @@ ssize_t sys_recvfile(int fromfd,
        static bool try_splice_call = true;
        size_t total_written = 0;
 
+       DEBUG(10,("sys_recvfile: from = %d, to = %d, "
+               "offset=%.0f, count = %lu\n",
+               fromfd, tofd, (double)offset,
+               (unsigned long)count));
+
        if (count == 0) {
                return 0;
        }
index ab737a89a7ec395a0b31106e4574dc9fd2170bba..c8ad19dd15ca797a243564dca30a6b73183f823d 100644 (file)
@@ -252,6 +252,8 @@ static NTSTATUS receive_smb_raw_talloc_partial_read(TALLOC_CTX *mem_ctx,
                        timeout, toread);
 
                if (!NT_STATUS_IS_OK(status)) {
+                       DEBUG(10, ("receive_smb_raw_talloc_partial_read: %s\n",
+                                  nt_errstr(status)));
                        return status;
                }
        }
@@ -282,14 +284,8 @@ static NTSTATUS receive_smb_raw_talloc(TALLOC_CTX *mem_ctx, int fd,
                        smb_len_large(lenbuf) > min_recv_size && /* Could be a UNIX large writeX. */
                        !srv_is_signing_active()) {
 
-               status = receive_smb_raw_talloc_partial_read(
-                       mem_ctx, lenbuf, fd, buffer, timeout, p_unread, &len);
-
-               if (!NT_STATUS_IS_OK(status)) {
-                       DEBUG(10, ("receive_smb_raw: %s\n",
-                                  nt_errstr(status)));
-                       return status;
-               }
+               return receive_smb_raw_talloc_partial_read(
+                       mem_ctx, lenbuf, fd, buffer, timeout, p_unread, plen);
        }
 
        if (!valid_packet_size(len)) {