Bug 81605 - smbclient fails to put >4GB file
smbclient fails to put >4GB file
Status: CLOSED WONTFIX
Product: Red Hat Linux
Classification: Retired
Component: samba (Show other bugs)
7.2
athlon Linux
medium Severity high
: ---
: ---
Assigned To: Jay Fenlason
David Lawrence
http://groups.google.com/groups?hl=en...
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2003-01-10 18:58 EST by David Yerger
Modified: 2014-08-31 19:24 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-05-17 15:31:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description David Yerger 2003-01-10 18:58:27 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2.1) Gecko/20021130

Description of problem:
After I experienced this problem, found the following in the 
URL I have included (I did not try patch myself):

> After the new samba install, I tried to "get" a file from Win2000 Advanced
> Server to Mandrake Linux 8.2 server using SMBCLIENT and was successfully
> able to transfer a 6.63GB file.  Then I tried to "put" a file from Mandrake
> Linux 8.2 server to the Win2000 Advanced Server and the file completed at
> 4GB rather than 6.63 GB.  Is this normal?

The following might be a fix to your problem :-)

diff -u -r1.2.4.9 clireadwrite.c
--- libsmb/clireadwrite.c	19 Dec 2002 16:12:41 -0000	1.2.4.9
+++ libsmb/clireadwrite.c	30 Dec 2002 04:04:37 -0000
@@ -231,6 +231,7 @@
 			    size_t size, int i)
 {
 	char *p;
+	BOOL bigoffset = False;
 
 	if (size > cli->bufsize) {
 		cli->outbuf = realloc(cli->outbuf, size + 1024);
@@ -243,7 +244,10 @@
 	memset(cli->outbuf,'\0',smb_size);
 	memset(cli->inbuf,'\0',smb_size);
 
-	if (size > 0xFFFF)
+	if ((SMB_BIG_UINT)offset >> 32) 
+		bigoffset = True;
+
+	if (bigoffset)
 		set_message(cli->outbuf,14,0,True);
 	else
 		set_message(cli->outbuf,12,0,True);
@@ -256,14 +260,20 @@
 	SSVAL(cli->outbuf,smb_vwv2,fnum);
 
 	SIVAL(cli->outbuf,smb_vwv3,offset);
-	SIVAL(cli->outbuf,smb_vwv5,(mode & 0x0008) ? 0xFFFFFFFF : 0);
+	SIVAL(cli->outbuf,smb_vwv5,0);
 	SSVAL(cli->outbuf,smb_vwv7,mode);
 
+	/*
+	 * THe following is still wrong ...
+	 */
 	SSVAL(cli->outbuf,smb_vwv8,(mode & 0x0008) ? size : 0);
 	SSVAL(cli->outbuf,smb_vwv9,((size>>16)&1));
 	SSVAL(cli->outbuf,smb_vwv10,size);
 	SSVAL(cli->outbuf,smb_vwv11,
 	      smb_buf(cli->outbuf) - smb_base(cli->outbuf));
+
+	if (bigoffset)
+		SIVAL(cli->outbuf,smb_vwv12,(offset>>32) & 0xffffffff);
 	
 	p = smb_base(cli->outbuf) + SVAL(cli->outbuf,smb_vwv11);
 	memcpy(p, buf, size);

Regards
-----
Richard Sharpe, rsharpe[at]ns.aus.com, rsharpe[at]samba.org, 
sharpe[at]ethereal.com, http://www.richardsharpe.com

Version-Release number of selected component (if applicable):


How reproducible:
Didn't try

Steps to Reproduce:
1.connect to W2K Pro with smbclient 
2.put file >4GB

    

Actual Results:  Only 4GB gets written.

Expected Results:  Whole file gets written :-)

Additional info:

This was supposed to have been merged in samba 3.0 CVS?  But 
maybe the patch will work against 2.2.1a?
Comment 1 David Yerger 2003-01-11 16:14:14 EST
Tried patch against 2.2.1a SRPM, did *not* work - now fails at 2GB instead of 4GB -

I am assured by our network admin that W2KSP3 has an 8GB filesize limit for
FAT32, not 4GB.  He is going to test.
Comment 2 David Yerger 2003-01-13 16:38:22 EST
Tested with unpatched smbclient against a share on the (NT 4.0) server using
NTFS, also failed (this time simply locked up), so it's not the other end.
Comment 3 David Yerger 2003-01-14 06:38:40 EST
Tested smbclient from samba 2_2 CVS, it includes this patch and *does* work.

*Yay*

So the patch seems only to work against later versions of samba than 2.2.1a.

I maybe could put together an RPM and attach it if you like. . . 
Comment 4 David Yerger 2003-01-24 17:33:53 EST
I used

./configure \
	--prefix=/usr \
	--sysconfdir=/etc \
        --with-fhs \
        --with-privatedir=/usr/bin \
        --with-lockdir=/var/cache/samba \
        --with-swatdir=/usr/share/swat \
        --with-codepagedir=/usr/share/samba/codepages \
        --with-automount \
        --with-smbmount \
        --with-pam \
        --with-pam_smbpass \
        --with-mmap \
        --with-quotas \
        --without-smbwrapper

(mostly stolen from the official SRPM's .spec file) to compile.

It calls itself 2.2.7pre1
.

HTH
Comment 5 David Yerger 2003-06-29 21:18:31 EDT
Still broke with smbclient from the samba-client package, version 2.2.7, 
release 3.7.2, April 6 2003 (bugfix from rhn overwrote my copy <groan>)

Note You need to log in before you can comment on or make changes to this bug.