From d72878365e3ab0ef7bc31065261d744d7693d578 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Wed, 31 Aug 2011 15:06:35 +0200 Subject: [PATCH] s3: 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. The last 2 patches address bug #8334 (smb2: smbd logs Invalid SMB packet: first request: 0x0008 and crashes). --- source3/smbd/negprot.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source3/smbd/negprot.c b/source3/smbd/negprot.c index 562dcea5514..a6285143a66 100644 --- a/source3/smbd/negprot.c +++ b/source3/smbd/negprot.c @@ -717,7 +717,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"); } -- 2.47.3