[THRIFT-5871] Improve MAX_MESSAGE_SIZE_CHECK and friends
diff --git a/lib/netstd/Thrift/Protocol/TCompactProtocol.cs b/lib/netstd/Thrift/Protocol/TCompactProtocol.cs
index 1fd7e50..5ca4841 100644
--- a/lib/netstd/Thrift/Protocol/TCompactProtocol.cs
+++ b/lib/netstd/Thrift/Protocol/TCompactProtocol.cs
@@ -816,8 +816,8 @@
{
switch (type)
{
- case TType.Stop: return 0;
- case TType.Void: return 0;
+ case TType.Stop: return 1; // T_STOP needs to count itself
+ case TType.Void: return 1; // T_VOID needs to count itself
case TType.Bool: return sizeof(byte);
case TType.Double: return 8; // uses fixedLongToBytes() which always writes 8 bytes
case TType.Byte: return sizeof(byte);
@@ -825,7 +825,7 @@
case TType.I32: return sizeof(byte); // zigzag
case TType.I64: return sizeof(byte); // zigzag
case TType.String: return sizeof(byte); // string length
- case TType.Struct: return 0; // empty struct
+ case TType.Struct: return 1; // empty struct needs at least 1 byte for the T_STOP
case TType.Map: return sizeof(byte); // element count
case TType.Set: return sizeof(byte); // element count
case TType.List: return sizeof(byte); // element count