Skip to content

Commit 3496ccb

Browse files
committed
check type assertion result immediately before using rsp
1 parent f6e6e9f commit 3496ccb

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

client.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,21 @@ func (cli *Client) Connect(servAddr, user, password string, timeout time.Duratio
7676
if cli.typ == V20 || cli.typ == V21 {
7777
var rsp *Cmpp2ConnRspPkt
7878
rsp, ok = p.(*Cmpp2ConnRspPkt)
79+
if !ok {
80+
err = ErrRespNotMatch
81+
return err
82+
}
7983
status = rsp.Status
8084
} else {
8185
var rsp *Cmpp3ConnRspPkt
8286
rsp, ok = p.(*Cmpp3ConnRspPkt)
87+
if !ok {
88+
err = ErrRespNotMatch
89+
return err
90+
}
8391
status = uint8(rsp.Status)
8492
}
8593

86-
if !ok {
87-
err = ErrRespNotMatch
88-
return err
89-
}
90-
9194
if status != 0 {
9295
if status <= ErrnoConnOthers { //ErrnoConnOthers = 5
9396
err = ConnRspStatusErrMap[status]

0 commit comments

Comments
 (0)