fix: 修复非 gateway 数据包导致数组越界的问题
This commit is contained in:
parent
89c32b4ce3
commit
5096e6f884
|
@ -630,17 +630,22 @@ 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])
|
||||||
var ct = packet[len(packet)-2]
|
if len(packet) >= 2 {
|
||||||
if ct == 0xff {
|
var ct = packet[len(packet)-2]
|
||||||
var gp GP
|
if ct == 0xff {
|
||||||
if err := super.UnmarshalJSON(packet[:len(packet)-2], &gp); err != nil {
|
var gp GP
|
||||||
panic(err)
|
if err := super.UnmarshalJSON(packet[:len(packet)-2], &gp); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
packet = gp.D
|
||||||
|
conn = newGatewayConn(conn, gp.C)
|
||||||
|
} else {
|
||||||
|
packet = packet[:len(packet)-1]
|
||||||
}
|
}
|
||||||
packet = gp.D
|
|
||||||
conn = newGatewayConn(conn, gp.C)
|
|
||||||
} else {
|
} else {
|
||||||
packet = packet[:len(packet)-1]
|
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})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue