]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:smb2_server: check the already granted credits like in the master branch
authorStefan Metzmacher <metze@samba.org>
Tue, 26 Jun 2012 12:28:07 +0000 (14:28 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 24 Jul 2012 18:50:12 +0000 (20:50 +0200)
metze

Backport of: s3:smb2_server: check the credit_charge against the already granted credits
(similar to commit 4fe41c0bb14f6ae7e52aa7f180e66c7695eb6fa0)

source3/smbd/smb2_server.c

index bbb342b018f97a249c4d4a31e9b2d81dd32fe508..a73c2cc9be2aa26e45511f4302b7a374bf82bf9a 100644 (file)
@@ -375,13 +375,6 @@ static bool smb2_validate_message_id(struct smbd_server_connection *sconn,
                return true;
        }
 
-       if (sconn->smb2.credits_granted == 0) {
-               DEBUG(0,("smb2_validate_message_id: client used more "
-                        "credits than granted message_id (%llu)\n",
-                        (unsigned long long)message_id));
-               return false;
-       }
-
        DEBUG(11, ("smb2_validate_message_id: mid %llu, credits_granted %llu, "
                   "max_credits %llu, seqnum_low: %llu\n",
                   (unsigned long long) message_id,
@@ -389,6 +382,17 @@ static bool smb2_validate_message_id(struct smbd_server_connection *sconn,
                   (unsigned long long) sconn->smb2.max_credits,
                   (unsigned long long) sconn->smb2.seqnum_low));
 
+       if (sconn->smb2.credits_granted < 1) {
+               DEBUG(0, ("smb2_validate_message_id: client used more "
+                         "credits than granted, mid %llu, credits_granted %llu, "
+                         "max_credits %llu, seqnum_low: %llu\n",
+                         (unsigned long long) message_id,
+                         (unsigned long long) sconn->smb2.credits_granted,
+                         (unsigned long long) sconn->smb2.max_credits,
+                         (unsigned long long) sconn->smb2.seqnum_low));
+               return false;
+       }
+
        ok = smb2_validate_sequence_number(sconn, message_id, message_id);
        if (!ok) {
                return false;