wgengine: fix TSMP/ICMP callback leak
Fixes #18112 Change-Id: I85d5c482b01673799d51faeb6cb0579903597502 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
536188c1b5
commit
b8c58ca7c1
@@ -451,6 +451,7 @@ func NewUserspaceEngine(logf logger.Logf, conf Config) (_ Engine, reterr error)
|
|||||||
cb := e.pongCallback[pong.Data]
|
cb := e.pongCallback[pong.Data]
|
||||||
e.logf("wgengine: got TSMP pong %02x, peerAPIPort=%v; cb=%v", pong.Data, pong.PeerAPIPort, cb != nil)
|
e.logf("wgengine: got TSMP pong %02x, peerAPIPort=%v; cb=%v", pong.Data, pong.PeerAPIPort, cb != nil)
|
||||||
if cb != nil {
|
if cb != nil {
|
||||||
|
delete(e.pongCallback, pong.Data)
|
||||||
go cb(pong)
|
go cb(pong)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -464,6 +465,7 @@ func NewUserspaceEngine(logf logger.Logf, conf Config) (_ Engine, reterr error)
|
|||||||
// We didn't swallow it, so let it flow to the host.
|
// We didn't swallow it, so let it flow to the host.
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
delete(e.icmpEchoResponseCallback, idSeq)
|
||||||
e.logf("wgengine: got diagnostic ICMP response %02x", idSeq)
|
e.logf("wgengine: got diagnostic ICMP response %02x", idSeq)
|
||||||
go cb()
|
go cb()
|
||||||
return true
|
return true
|
||||||
|
|||||||
Reference in New Issue
Block a user