Skip to content

Commit 93b5109

Browse files
committed
fix: 修复消息编码中长度字段类型转换问题
将totalLength的计算和写入统一为uint类型,避免潜在的溢出和类型不匹配问题。原代码中totalLength计算为int类型,写入时强制转换为ushort可能导致数据截断,现统一使用uint确保数据完整性。
1 parent a9eb9af commit 93b5109

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

GameFrameX.NetWork.Message/DefaultMessageEncoderHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ public override byte[] Handler(IMessage message)
6565
var messageBodyData = ProtoBufSerializerHelper.Serialize(messageObject);
6666
byte zipFlag = 0;
6767
BytesCompressHandler(ref messageBodyData, ref zipFlag);
68-
var totalLength = (ushort)(PackageHeaderLength + messageBodyData.Length);
68+
var totalLength = PackageHeaderLength + messageBodyData.Length;
6969
var buffer = ArrayPool<byte>.Shared.Rent(totalLength);
7070
var offset = 0;
7171
// 总长度
72-
buffer.WriteUIntValue(totalLength, ref offset);
72+
buffer.WriteUIntValue((uint)totalLength, ref offset);
7373
// operationType 操作类型
7474
buffer.WriteByteValue((byte)messageObject.OperationType, ref offset);
7575
// zipFlag 压缩标记

0 commit comments

Comments
 (0)