You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/net
James Tucker 9ed3a061c3 net/netns: fix segv when no tailscale interface is found
`interfaces.Tailscale()` returns all zero values when it finds no
Tailscale interface and encounters no errors. The netns package was
treating no error as a signal that it would receive a non-zero pointer
value leading to nil pointer dereference.

Observed in:

```
--- FAIL: TestGetInterfaceIndex (0.00s)
    --- FAIL: TestGetInterfaceIndex/IP_and_port (0.00s)
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x1029eb7d8]

goroutine 7 [running]:
testing.tRunner.func1.2({0x102a691e0, 0x102bc05c0})
        /Users/raggi/.cache/tailscale-go/src/testing/testing.go:1526 +0x1c8
testing.tRunner.func1()
        /Users/raggi/.cache/tailscale-go/src/testing/testing.go:1529 +0x384
panic({0x102a691e0, 0x102bc05c0})
        /Users/raggi/.cache/tailscale-go/src/runtime/panic.go:884 +0x204
tailscale.com/net/netns.getInterfaceIndex(0x14000073f28, 0x1028d0284?, {0x1029ef3b7, 0xa})
        /Users/raggi/src/github.com/tailscale/tailscale/net/netns/netns_darwin.go:114 +0x228
tailscale.com/net/netns.TestGetInterfaceIndex.func2(0x14000138000)
        /Users/raggi/src/github.com/tailscale/tailscale/net/netns/netns_darwin_test.go:37 +0x54
testing.tRunner(0x14000138000, 0x140000551b0)
        /Users/raggi/.cache/tailscale-go/src/testing/testing.go:1576 +0x10c
created by testing.(*T).Run
        /Users/raggi/.cache/tailscale-go/src/testing/testing.go:1629 +0x368
FAIL    tailscale.com/net/netns 0.824s
```

Fixes #8064

Signed-off-by: James Tucker <jftucker@gmail.com>
2 years ago
..
art
connstats
dns all: avoid repeated default interface lookups 2 years ago
dnscache all: avoid repeated default interface lookups 2 years ago
dnsfallback all: avoid repeated default interface lookups 2 years ago
flowtrack
interfaces
memnet
netaddr
netcheck net/ping,netcheck: add v6 pinging capabilities to pinger (#7971) 2 years ago
neterror
netknob
netmon
netns net/netns: fix segv when no tailscale interface is found 2 years ago
netstat
netutil
packet net/packet: add NAT support for DCCP and GRE 2 years ago
ping net/ping,netcheck: add v6 pinging capabilities to pinger (#7971) 2 years ago
portmapper all: avoid repeated default interface lookups 2 years ago
proxymux
routetable
socks5
sockstats all: avoid repeated default interface lookups 2 years ago
speedtest
stun wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration 2 years ago
tlsdial
tsaddr
tsdial all: avoid repeated default interface lookups 2 years ago
tshttpproxy
tstun tsd: add package with System type to unify subsystem init, discovery 2 years ago
wsconn