fix: 修复非 gateway 数据包导致数组越界的问题

This commit is contained in:
kercylan98 2023-08-22 14:07:48 +08:00
parent 89c32b4ce3
commit 5096e6f884
1 changed files with 12 additions and 7 deletions

View File

@ -630,6 +630,7 @@ func (slf *Server) dispatchMessage(msg *Message) {
var conn = attrs[0].(*Conn) var conn = attrs[0].(*Conn)
var packet = attrs[1].([]byte) var packet = attrs[1].([]byte)
var wst = int(packet[len(packet)-1]) var wst = int(packet[len(packet)-1])
if len(packet) >= 2 {
var ct = packet[len(packet)-2] var ct = packet[len(packet)-2]
if ct == 0xff { if ct == 0xff {
var gp GP var gp GP
@ -641,6 +642,10 @@ func (slf *Server) dispatchMessage(msg *Message) {
} else { } else {
packet = packet[:len(packet)-1] packet = packet[:len(packet)-1]
} }
} else {
packet = packet[:len(packet)-1]
}
if !slf.OnConnectionPacketPreprocessEvent(conn, packet, func(newPacket []byte) { packet = newPacket }) { if !slf.OnConnectionPacketPreprocessEvent(conn, packet, func(newPacket []byte) { packet = newPacket }) {
slf.OnConnectionReceivePacketEvent(conn, Packet{Data: packet, WebsocketType: wst}) slf.OnConnectionReceivePacketEvent(conn, Packet{Data: packet, WebsocketType: wst})
} }