summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-11-25 18:15:49 +0000
committerJeremy Allison <jra@samba.org>2003-11-25 18:15:49 +0000
commitc8d0bce19ff7bf31b1f945b189839281a71aa697 (patch)
tree4558f5ce312a0d465d0c39eb699b9a376018c070 /source3/libsmb
parent90d4b84636b08740c4dd4995250ac53ef345f6ce (diff)
downloadsamba-c8d0bce19ff7bf31b1f945b189839281a71aa697.tar.gz
samba-c8d0bce19ff7bf31b1f945b189839281a71aa697.tar.bz2
samba-c8d0bce19ff7bf31b1f945b189839281a71aa697.zip
If signing starts successfully, don't just turn it off automatically if
it fails later. Only turn it off automatically if it fails at the start. Jeremy. (This used to be commit 2a00d538da61253455db1734b74ef1debaea24ea)
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/smb_signing.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/source3/libsmb/smb_signing.c b/source3/libsmb/smb_signing.c
index 2a53638d17..755a1548eb 100644
--- a/source3/libsmb/smb_signing.c
+++ b/source3/libsmb/smb_signing.c
@@ -745,11 +745,8 @@ We were expecting seq %u\n", reply_seq_number, saved_seq ));
}
if (!signing_good(inbuf, si, good, saved_seq)) {
- if (si->mandatory_signing) {
- /* Mandatory signing - fail and disconnect. */
- return False;
- } else {
- /* Non-mandatory signing - just turn off. */
+ if (!si->mandatory_signing && (data->send_seq_num < 3)){
+ /* Non-mandatory signing - just turn off if this is the first bad packet.. */
DEBUG(5, ("srv_check_incoming_message: signing negotiated but not required and client \
isn't sending correct signatures. Turning off.\n"));
si->negotiated_smb_signing = False;
@@ -757,6 +754,9 @@ isn't sending correct signatures. Turning off.\n"));
si->doing_signing = False;
free_signing_context(si);
return True;
+ } else {
+ /* Mandatory signing or bad packet after signing started - fail and disconnect. */
+ return False;
}
} else {
return True;