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>
2023-05-05 11:31:43 -07:00
..
art net/art: skip tests on CI for now 2023-04-14 10:24:38 -07:00
connstats net/connstats: exclude traffic with internal Tailscale service (#7904) 2023-04-17 14:24:29 -07:00
dns all: avoid repeated default interface lookups 2023-04-20 15:46:01 -07:00
dnscache all: avoid repeated default interface lookups 2023-04-20 15:46:01 -07:00
dnsfallback all: avoid repeated default interface lookups 2023-04-20 15:46:01 -07:00
flowtrack all: update copyright and license headers 2023-01-27 15:36:29 -08:00
interfaces all: move network monitoring from wgengine/monitor to net/netmon 2023-04-20 10:15:59 -07:00
memnet net/memnet: rename from net/nettest 2023-01-30 13:03:32 -08:00
netaddr all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netcheck net/ping,netcheck: add v6 pinging capabilities to pinger (#7971) 2023-04-26 15:59:37 -07:00
neterror net/neterror, wgengine/magicsock: use UDP GSO and GRO on Linux (#7791) 2023-04-04 16:32:16 -07:00
netknob all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netmon all: move network monitoring from wgengine/monitor to net/netmon 2023-04-20 10:15:59 -07:00
netns net/netns: fix segv when no tailscale interface is found 2023-05-05 11:31:43 -07:00
netstat net/{netns,netstat}: use new x/sys/cpu.IsBigEndian 2023-02-02 07:41:49 -08:00
netutil all: replace /kb/ links with /s/ equivalents 2023-03-13 14:21:15 -07:00
packet net/packet: add NAT support for DCCP and GRE 2023-04-24 15:30:50 -07:00
ping net/ping,netcheck: add v6 pinging capabilities to pinger (#7971) 2023-04-26 15:59:37 -07:00
portmapper all: avoid repeated default interface lookups 2023-04-20 15:46:01 -07:00
proxymux all: update copyright and license headers 2023-01-27 15:36:29 -08:00
routetable net/routetable: include unknown flags in the routetable doctor output 2023-02-10 15:54:31 -08:00
socks5 net/socks5: add password auth support 2023-03-05 14:08:34 -08:00
sockstats all: avoid repeated default interface lookups 2023-04-20 15:46:01 -07:00
speedtest all: update copyright and license headers 2023-01-27 15:36:29 -08:00
stun wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration 2023-04-15 13:40:15 -07:00
tlsdial health, net/tlsdial: add healthcheck for self-signed cert 2023-02-01 23:17:41 -05:00
tsaddr all: replace /kb/ links with /s/ equivalents 2023-03-13 14:21:15 -07:00
tsdial all: avoid repeated default interface lookups 2023-04-20 15:46:01 -07:00
tshttpproxy net/tshttpproxy: don't proxy through ourselves 2023-03-29 17:09:45 -04:00
tstun tsd: add package with System type to unify subsystem init, discovery 2023-05-04 14:21:59 -07:00
wsconn all: update copyright and license headers 2023-01-27 15:36:29 -08:00