svn commit: samba r22145 - in branches: SAMBA_3_0/source/smbd
SAMBA_3_0_25/source/smbd
jra at samba.org
jra at samba.org
Mon Apr 9 21:01:47 GMT 2007
Author: jra
Date: 2007-04-09 21:01:46 +0000 (Mon, 09 Apr 2007)
New Revision: 22145
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22145
Log:
Fix bug #4494 - reported by Kevin Jamieson <bugzilla at kevinjamieson.com>.
If returning a mapped UNIX error from sendfile, don't call chain_reply.
Jeremy.
Modified:
branches/SAMBA_3_0/source/smbd/process.c
branches/SAMBA_3_0/source/smbd/reply.c
branches/SAMBA_3_0_25/source/smbd/process.c
branches/SAMBA_3_0_25/source/smbd/reply.c
Changeset:
Modified: branches/SAMBA_3_0/source/smbd/process.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/process.c 2007-04-09 18:56:26 UTC (rev 22144)
+++ branches/SAMBA_3_0/source/smbd/process.c 2007-04-09 21:01:46 UTC (rev 22145)
@@ -1161,8 +1161,8 @@
char outbuf_saved[smb_wct];
int outsize = smb_len(outbuf) + 4;
- /* maybe its not chained */
- if (smb_com2 == 0xFF) {
+ /* Maybe its not chained, or it's an error packet. */
+ if (smb_com2 == 0xFF || SVAL(outbuf,smb_rcls) != 0) {
SCVAL(outbuf,smb_vwv0,0xFF);
return outsize;
}
Modified: branches/SAMBA_3_0/source/smbd/reply.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/reply.c 2007-04-09 18:56:26 UTC (rev 22144)
+++ branches/SAMBA_3_0/source/smbd/reply.c 2007-04-09 21:01:46 UTC (rev 22145)
@@ -2706,8 +2706,10 @@
}
nread = send_file_readX(conn, inbuf, outbuf, length, bufsize, fsp, startpos, smb_maxcnt);
- if (nread != -1)
+ /* Only call chain_reply if not an error. */
+ if (nread != -1 && SVAL(outbuf,smb_rcls) == 0) {
nread = chain_reply(inbuf,outbuf,length,bufsize);
+ }
END_PROFILE(SMBreadX);
return nread;
Modified: branches/SAMBA_3_0_25/source/smbd/process.c
===================================================================
--- branches/SAMBA_3_0_25/source/smbd/process.c 2007-04-09 18:56:26 UTC (rev 22144)
+++ branches/SAMBA_3_0_25/source/smbd/process.c 2007-04-09 21:01:46 UTC (rev 22145)
@@ -1153,8 +1153,8 @@
char outbuf_saved[smb_wct];
int outsize = smb_len(outbuf) + 4;
- /* maybe its not chained */
- if (smb_com2 == 0xFF) {
+ /* Maybe its not chained, or it's an error packet. */
+ if (smb_com2 == 0xFF || SVAL(outbuf,smb_rcls) != 0) {
SCVAL(outbuf,smb_vwv0,0xFF);
return outsize;
}
Modified: branches/SAMBA_3_0_25/source/smbd/reply.c
===================================================================
--- branches/SAMBA_3_0_25/source/smbd/reply.c 2007-04-09 18:56:26 UTC (rev 22144)
+++ branches/SAMBA_3_0_25/source/smbd/reply.c 2007-04-09 21:01:46 UTC (rev 22145)
@@ -2705,8 +2705,10 @@
}
nread = send_file_readX(conn, inbuf, outbuf, length, bufsize, fsp, startpos, smb_maxcnt);
- if (nread != -1)
+ /* Only call chain_reply if not an error. */
+ if (nread != -1 && SVAL(outbuf,smb_rcls) == 0) {
nread = chain_reply(inbuf,outbuf,length,bufsize);
+ }
END_PROFILE(SMBreadX);
return nread;
More information about the samba-cvs
mailing list