Revert "s3:smbd: SMB ReadX with size > 0xffff should only possible for samba clients."
authorJeremy Allison <jra@samba.org>
Tue, 22 Jan 2013 20:38:28 +0000 (12:38 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 24 Jan 2013 18:21:35 +0000 (19:21 +0100)
Part of fix for bug #9572 -  File corruption during SMB1 read by Mac OSX 10.8.2 clients

This reverts commit f8c26c16b82989e002b839fc9eba6386fc036f6a.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/smbd/reply.c

index b511025d8035b3dd85ff64b2082282477398f96b..210b7010d9fa8bd4c2c49e0d566effa2622842d6 100644 (file)
@@ -3854,7 +3854,6 @@ nosendfile_read:
 
 void reply_read_and_X(struct smb_request *req)
 {
-       struct smbd_server_connection *sconn = req->sconn;
        connection_struct *conn = req->conn;
        files_struct *fsp;
        off_t startpos;
@@ -3893,15 +3892,7 @@ void reply_read_and_X(struct smb_request *req)
                return;
        }
 
-       if ((sconn->smb1.unix_info.client_cap_low & CIFS_UNIX_LARGE_READ_CAP) ||
-           (get_remote_arch() == RA_SAMBA)) {
-               /*
-                * This is Samba only behavior (up to Samba 3.6)!
-                *
-                * Windows 2008 R2 ignores the upper_size,
-                * so we do unless unix extentions are active
-                * or "smbclient" is talking to us.
-                */
+       if (global_client_caps & CAP_LARGE_READX) {
                size_t upper_size = SVAL(req->vwv+7, 0);
                smb_maxcnt |= (upper_size<<16);
                if (upper_size > 1) {