Fix bug #8476 - Samba asserts when SMB2 client breaks the crediting rules.
[kai/samba.git] / source3 / smbd / smb2_server.c
index d1b7ac5ce1f607f533658ffa424c7c7331164690..0ffeb4818d04786df57f76d6b65453e18db892f5 100644 (file)
@@ -322,8 +322,13 @@ static bool smb2_validate_message_id(struct smbd_server_connection *sconn,
                return false;
        }
 
+       if (sconn->smb2.credits_granted == 0) {
+               smbd_server_connection_terminate(sconn, "smb2_validate_message_id: "
+                       "terminating connection: client used more credits than granted\n");
+               return false;
+       }
+
        /* client just used a credit. */
-       SMB_ASSERT(sconn->smb2.credits_granted > 0);
        sconn->smb2.credits_granted -= 1;
 
        /* Mark the message_id as seen in the bitmap. */