The branch, v3-6-test has been updated via 280fd56 We need to start off with smb2.credits_granted == 0. That way when processing the faked up SMB2 NegProt from the SMB1 packet we always allocate one credit on reply. from 839196f Remove extra unused credit arg. to smbd_smb2_request_setup_out() (cherry picked from commit 7a835a6b42c49d70b599ab7c651f7aa871d8c605)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test - Log ----------------------------------------------------------------- commit 280fd56b17eeae82abc0676049ad19ebb74b93e8 Author: Jeremy Allison <j...@samba.org> Date: Mon Dec 13 13:34:50 2010 -0800 We need to start off with smb2.credits_granted == 0. That way when processing the faked up SMB2 NegProt from the SMB1 packet we always allocate one credit on reply. Jeremy. (cherry picked from commit 6ce365b238755ccd64b1c2aca0933f8e717300b0) ----------------------------------------------------------------------- Summary of changes: source3/smbd/smb2_server.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index d2baed7..91e00dc 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -111,7 +111,7 @@ static NTSTATUS smbd_initialize_smb2(struct smbd_server_connection *sconn) sconn->smb2.sessions.limit = 0x0000FFFE; sconn->smb2.sessions.list = NULL; sconn->smb2.seqnum_low = 0; - sconn->smb2.credits_granted = 1; + sconn->smb2.credits_granted = 0; sconn->smb2.max_credits = lp_smb2_max_credits(); sconn->smb2.credits_bitmap = bitmap_talloc(sconn, 2*sconn->smb2.max_credits); if (sconn->smb2.credits_bitmap == NULL) { @@ -453,7 +453,8 @@ static void smb2_set_operation_credit(struct smbd_server_connection *sconn, sconn->smb2.credits_granted)); if (credits_granted == 0 && sconn->smb2.credits_granted == 0) { - /* Ensure the client credits can never drop to zero. */ + /* First negprot packet, or ensure the client credits can + never drop to zero. */ credits_granted = 1; } -- Samba Shared Repository