tailscale/ipn
Nick Khyl 1f84729908 ipn/desktop: use runtime.Pinner to force heap-allocation of msg
GetMessage can call back into Go, triggering stack growth and causing the stack
to be copied to a new memory region, which invalidates the original stack pointer
passed to the syscall. Since GetMessage uses that pointer to write the message
before returning, this leads to memory corruption.

In this PR, we fix this by using runtime.Pinner, which requires the pointer to refer
to heap-allocated memory.

Fixes #19263
Fixes #17832

Signed-off-by: Nick Khyl <nickk@tailscale.com>
2026-04-07 12:55:11 -05:00
..
auditlog all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
conffile all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
desktop ipn/desktop: use runtime.Pinner to force heap-allocation of msg 2026-04-07 12:55:11 -05:00
ipnauth all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipnext feature/conn25,ipn/ipnext,ipn/ipnlocal: add ExtraRouterConfigRoutes hook 2026-03-25 19:28:33 -07:00
ipnlocal ipn/ipnlocal,net/netmon: make frequent darkwake more efficient 2026-04-06 15:46:51 -07:00
ipnserver ipn/ipnserver: use peercreds for actor.Username on freebsd (for Taildrive) 2026-03-24 20:35:56 -07:00
ipnstate types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
lapitest types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
localapi ipn/localapi, cli, clientmetric: add ipnbus feature tag; fix omit.go stub 2026-04-07 10:22:37 -07:00
policy all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
store all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
backend_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
backend.go ipn,ipn/local: broadcast ClientVersion if AutoUpdate.Check (#19107) 2026-03-24 15:06:20 -07:00
conf_test.go ipn: reject advertised routes with non-address bits set (#18649) 2026-03-20 10:10:43 -07:00
conf.go ipn: fix the typo causing NoSNAT always set to true (#19110) 2026-03-24 16:41:58 -04:00
doc.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipn_clone.go tailcfg: reintroduce UserProfile.Groups 2026-03-09 11:08:45 +00:00
ipn_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipn_view.go tailcfg: reintroduce UserProfile.Groups 2026-03-09 11:08:45 +00:00
prefs_test.go cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
prefs.go ipn, cmd/tailscale/cli: allow setting FQDN sans dot as an exit node 2026-04-01 20:42:35 +01:00
serve_expand_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
serve_test.go cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
serve.go all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
store_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
store.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00