mirror of
https://github.com/samba-team/samba.git
synced 2025-01-22 22:04:08 +03:00
s3: smbd: Only set xconn->smb1.negprot.done = true after supported_protocols[protocol].proto_reply_fn() succeeds.
Otherwise we can end up with negprot.done set, but without smbXsrv_connection_init_tables() being called. This can cause a client self-crash. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14205 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Wed Dec 4 21:27:24 UTC 2019 on sn-devel-184
This commit is contained in:
parent
46899ecf83
commit
8db0c1bff6
@ -1 +0,0 @@
|
||||
^samba.tests.smbd_fuzztest
|
@ -588,7 +588,6 @@ void reply_negprot(struct smb_request *req)
|
||||
END_PROFILE(SMBnegprot);
|
||||
exit_server_cleanly("multiple negprot's are not permitted");
|
||||
}
|
||||
xconn->smb1.negprot.done = true;
|
||||
|
||||
if (req->buflen == 0) {
|
||||
DEBUG(0, ("negprot got no protocols\n"));
|
||||
@ -778,6 +777,8 @@ void reply_negprot(struct smb_request *req)
|
||||
|
||||
DBG_INFO("negprot index=%zu\n", choice);
|
||||
|
||||
xconn->smb1.negprot.done = true;
|
||||
|
||||
/* We always have xconn->smb1.signing_state also for >= SMB2_02 */
|
||||
signing_required = smb_signing_is_mandatory(xconn->smb1.signing_state);
|
||||
if (signing_required && (chosen_level < PROTOCOL_NT1)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user