Skip to content

Commit 7a0fa44

Browse files
committed
handler: fix nil dereference error
decoder may be nil in some cases.
1 parent 647d8ca commit 7a0fa44

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

handler.go

+7-3
Original file line numberDiff line numberDiff line change
@@ -137,18 +137,22 @@ func (h *socketHandler) onPacket(decoder *decoder, packet *packet) ([]interface{
137137
case _BINARY_ACK:
138138
return nil, h.onAck(packet.Id, decoder, packet)
139139
default:
140-
message = decoder.Message()
140+
if decoder != nil {
141+
message = decoder.Message()
142+
}
141143
}
142144
c, ok := h.events[message]
143145
if !ok {
144146
// If the message is not recognized by the server, the decoder.currentCloser
145147
// needs to be closed otherwise the server will be stuck until the e
146-
decoder.Close()
148+
if decoder != nil {
149+
decoder.Close()
150+
}
147151
return nil, nil
148152
}
149153
args := c.GetArgs()
150154
olen := len(args)
151-
if olen > 0 {
155+
if olen > 0 && decoder != nil {
152156
packet.Data = &args
153157
if err := decoder.DecodeData(packet); err != nil {
154158
return nil, err

0 commit comments

Comments
 (0)