wgengine: stop giving tsdns a buffer that will be reused

Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com>
(cherry picked from commit cb01058a53f4bec9642b04e5c549eaf5783d14de)
This commit is contained in:
Dmytro Shynkevych 2020-08-06 18:11:12 -04:00 committed by Brad Fitzpatrick
parent 13a896226c
commit 1c023b480a

View File

@ -405,7 +405,7 @@ func (e *userspaceEngine) isLocalAddr(ip packet.IP) bool {
func (e *userspaceEngine) handleDNS(p *packet.ParsedPacket, t *tstun.TUN) filter.Response { func (e *userspaceEngine) handleDNS(p *packet.ParsedPacket, t *tstun.TUN) filter.Response {
if p.DstIP == magicDNSIP && p.DstPort == magicDNSPort && p.IPProto == packet.UDP { if p.DstIP == magicDNSIP && p.DstPort == magicDNSPort && p.IPProto == packet.UDP {
request := tsdns.Packet{ request := tsdns.Packet{
Payload: p.Payload(), Payload: append([]byte(nil), p.Payload()...),
Addr: netaddr.IPPort{IP: p.SrcIP.Netaddr(), Port: p.SrcPort}, Addr: netaddr.IPPort{IP: p.SrcIP.Netaddr(), Port: p.SrcPort},
} }
err := e.resolver.EnqueueRequest(request) err := e.resolver.EnqueueRequest(request)