summaryrefslogtreecommitdiff
path: root/source3/smbd/negprot.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-08-31 15:06:35 +0200
committerVolker Lendecke <vlendec@samba.org>2011-08-31 17:58:48 +0200
commit781074664deecec5c0067fccf1baee602fd18a83 (patch)
tree2ab567c9e450a8010c8290742c7af08457ff1fe8 /source3/smbd/negprot.c
parentda2347379e04caf5b7bbd3a6704b03e03c8bf30a (diff)
downloadsamba-781074664deecec5c0067fccf1baee602fd18a83.tar.gz
samba-781074664deecec5c0067fccf1baee602fd18a83.tar.bz2
samba-781074664deecec5c0067fccf1baee602fd18a83.zip
s3: Fix bug 8334, do not fork the echo handler for smb2
If a smb1 negprot negotiated smb2 we forked the echo responder. This will eventually lead to a panic from [2011/08/30 10:33:29.212578, 0, pid=3846917] smbd/smb2_server.c:243(smbd_smb2_request_create) Invalid SMB packet: first request: 0x0009 because from the echo responder we always read using the normal smb1 protocol handling routine. If that is a bit down the smb2 stream, we get a non-negprot packet and panic. BTW, the echo responder is not required for smb2 anyway, Microsoft confirmed that it probes the server liveness using TCP keepalives and not smb2 echo requests. Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Wed Aug 31 17:58:48 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/smbd/negprot.c')
-rw-r--r--source3/smbd/negprot.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source3/smbd/negprot.c b/source3/smbd/negprot.c
index a58744281c..236b4d6692 100644
--- a/source3/smbd/negprot.c
+++ b/source3/smbd/negprot.c
@@ -743,7 +743,8 @@ void reply_negprot(struct smb_request *req)
TALLOC_FREE(cliprotos);
- if (lp_async_smb_echo_handler() && !fork_echo_handler(sconn)) {
+ if (lp_async_smb_echo_handler() && (get_Protocol() < PROTOCOL_SMB2) &&
+ !fork_echo_handler(sconn)) {
exit_server("Failed to fork echo handler");
}