@@ -620,7 +620,7 @@ serve = \req -> case req of
620 ForwardMessage {toKey, fromKey, encryptedBlob, timestamp, originServer, messageId, authorization, respond} -> do
620 ForwardMessage {toKey, fromKey, encryptedBlob, timestamp, originServer, messageId, authorization, respond} -> do
622 let authorized = verifyFederationAuth authorization
622 let authorized = verifyFederationAuth authorization
623− let validOrigin = not (originServer == "") && not (originServer == serverHost)
623+ let validOrigin = not (originServer == "") && not (originServer == serverHost) && not (tooLong originServer maxPubkeyLen)
624 let validFields = not (toKey == "") && not (fromKey == "") && not (encryptedBlob == "") && not (messageId == "") && isValidHex toKey && isValidHex fromKey && isValidHex messageId && not (tooLong toKey maxPubkeyLen) && not (tooLong fromKey maxPubkeyLen) && not (tooLong encryptedBlob maxBlobLen) && not (tooLong messageId maxPubkeyLen)
624 let validFields = not (toKey == "") && not (fromKey == "") && not (encryptedBlob == "") && not (messageId == "") && isValidHex toKey && isValidHex fromKey && isValidHex messageId && not (tooLong toKey maxPubkeyLen) && not (tooLong fromKey maxPubkeyLen) && not (tooLong encryptedBlob maxBlobLen) && not (tooLong messageId maxPubkeyLen)
625 let clampedTs = if timestamp > t then t else if timestamp < t - messageMaxAge then t else timestamp
625 let clampedTs = if timestamp > t then t else if timestamp < t - messageMaxAge then t else timestamp
626 pruneResult <- atomic do
626 pruneResult <- atomic do