Receiving invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling)
This commit is contained in:
		| @@ -1 +1 @@ | |||||||
| 5.1.6 | 5.1.7 | ||||||
|   | |||||||
| @@ -1,6 +1,10 @@ | |||||||
| # Changelog | # Changelog | ||||||
| All notable changes to this project will be documented in this file. | All notable changes to this project will be documented in this file. | ||||||
|  |  | ||||||
|  | ## [5.1.7] - 2019-09-03 | ||||||
|  |  | ||||||
|  | - Receiving invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) | ||||||
|  |  | ||||||
| ## [5.1.6] - 2019-09-03 | ## [5.1.6] - 2019-09-03 | ||||||
|  |  | ||||||
| - Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) | - Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) | ||||||
|   | |||||||
| @@ -789,11 +789,28 @@ namespace ix | |||||||
|         { |         { | ||||||
|             std::string decompressedMessage; |             std::string decompressedMessage; | ||||||
|             bool success = _perMessageDeflate.decompress(message, decompressedMessage); |             bool success = _perMessageDeflate.decompress(message, decompressedMessage); | ||||||
|             onMessageCallback(decompressedMessage, wireSize, !success, messageKind); |  | ||||||
|  |             if (messageKind == MessageKind::MSG_TEXT && !validateUtf8(decompressedMessage)) | ||||||
|  |             { | ||||||
|  |                 close(WebSocketCloseConstants::kInvalidFramePayloadData, | ||||||
|  |                       WebSocketCloseConstants::kInvalidFramePayloadDataMessage); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 onMessageCallback(decompressedMessage, wireSize, !success, messageKind); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|         else |         else | ||||||
|         { |         { | ||||||
|             onMessageCallback(message, wireSize, false, messageKind); |             if (messageKind == MessageKind::MSG_TEXT && !validateUtf8(message)) | ||||||
|  |             { | ||||||
|  |                 close(WebSocketCloseConstants::kInvalidFramePayloadData, | ||||||
|  |                       WebSocketCloseConstants::kInvalidFramePayloadDataMessage); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 onMessageCallback(message, wireSize, false, messageKind); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,4 +6,4 @@ | |||||||
|  |  | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #define IX_WEBSOCKET_VERSION "5.1.6" | #define IX_WEBSOCKET_VERSION "5.1.7" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user