Incompatibility between wintun.dll and go module
Simon Rozman
simon at rozman.si
Tue Jun 14 17:02:41 UTC 2022
Hi!
The 0.14+ is not binary compatible with 0.13. The API changed considerably: https://git.zx2c4.com/wintun/diff/api/wintun.h?id=544fdaaf8fb970d9657a59c1fc4c4569de4f2d3e
The wireguard-go repo was adjusted for this API change in https://git.zx2c4.com/wireguard-go/commit/?id=82d2aa87aa623cb5143a41c3345da4fb875ad85d. Wintun adapter pools were completely discontinued; however, your stack trace indicates you are still using an outdated version of wireguard-go calling wintun.(*Pool).OpenAdapter.
Please, update wireguard-go and update.
Regards,
Simon
-----Original Message-----
From: WireGuard <wireguard-bounces at lists.zx2c4.com> on behalf of Thomas Hallgren <thomas at datawire.io>
Date: Tuesday, 14 June 2022 at 11.32
To: "wireguard at lists.zx2c4.com" <wireguard at lists.zx2c4.com>
Subject: Incompatibility between wintun.dll and go module
Hi,
We're using the wintun.dll and the go module
golang.zx2c4.com/wireguard/windows v0.5.3 in our product. The dll
initialization fails when upgrading the wintun.dll to version 0.14.1
(or 0.14, it doesn't matter). 0.13 works fine. Relevant stack trace
below.
Thanks for an excellent library. Without it, it would be much harder
to port our product to Windows.
unexpected fault address 0xffffffffffffffff
fatal error: fault
[signal 0xc0000005 code=0x0 addr=0xffffffffffffffff pc=0xe8b29d]
goroutine 65 [running, locked to thread]:
runtime.throw({0x27b93d9?, 0x0?})
runtime/panic.go:992 +0x76 fp=0xc000a393d8 sp=0xc000a393a8 pc=0xce8996
runtime.sigpanic()
runtime/signal_windows.go:261 +0x125 fp=0xc000a39420 sp=0xc000a393d8 pc=0xcfbb05
golang.org/x/sys/windows.UTF16PtrToString(0x240e6a0?)
golang.org/x/sys at v0.0.0-20220209214540-3681064d5158/windows/syscall_windows.go:132
+0x1d fp=0xc000a39468 sp=0xc000a39420 pc=0xe8b29d
golang.zx2c4.com/wireguard/tun/wintun.setupLogger.func1(0xc000057590?, 0x0?)
golang.zx2c4.com/wireguard at v0.0.0-20210427022245-097af6e1351b/tun/wintun/wintun_windows.go:53
+0x1c fp=0xc000a394b0 sp=0xc000a39468 pc=0x1f321bc
runtime.call16(0x0, 0x28df468, 0xc000a39538, 0x0, 0x0, 0x10, 0xc000a39790)
runtime/asm_amd64.s:701 +0x50 fp=0xc000a394d0 sp=0xc000a394b0 pc=0xd14530
runtime.callbackWrap(0x7c95ffebc0)
runtime/syscall_windows.go:378 +0x134 fp=0xc000a398b0 sp=0xc000a394d0
pc=0xd04074
runtime.cgocallbackg1(0xd03f40, 0x0?, 0x0)
runtime/cgocall.go:314 +0x2ca fp=0xc000a39980 sp=0xc000a398b0 pc=0xcb4b8a
runtime.cgocallbackg(0xc000583380?, 0x300000002?, 0xc000583380?)
runtime/cgocall.go:233 +0x106 fp=0xc000a39a18 sp=0xc000a39980 pc=0xcb47c6
runtime.cgocallbackg(0xd03f40, 0x7c95ffebc0, 0x0)
<autogenerated>:1 +0x36 fp=0xc000a39a40 sp=0xc000a39a18 pc=0xd18356
runtime.cgocallback(0xcb464b, 0xd17be0, 0xc0001002c0)
runtime/asm_amd64.s:971 +0xd7 fp=0xc000a39a68 sp=0xc000a39a40 pc=0xd160f7
runtime.systemstack_switch()
runtime/asm_amd64.s:436 fp=0xc000a39a70 sp=0xc000a39a68 pc=0xd13fe0
runtime.cgocall(0xd17be0, 0xc0001002c0)
runtime/cgocall.go:167 +0xab fp=0xc000a39aa8 sp=0xc000a39a70 pc=0xcb464b
syscall.SyscallN(0x7ffc169c3a90?, {0xc000a39b40?, 0x3?, 0x0?})
runtime/syscall_windows.go:538 +0x109 fp=0xc000a39b20 sp=0xc000a39aa8
pc=0xd12de9
syscall.Syscall(0xc000479590?, 0x1a428c8510a?, 0x1a428c8510a?, 0x0?, 0x0?)
runtime/syscall_windows.go:476 +0x3b fp=0xc000a39b68 sp=0xc000a39b20 pc=0xd129fb
golang.zx2c4.com/wireguard/tun/wintun.(*Pool).OpenAdapter(0xc000187800,
{0x27b825c?, 0x1a403910598?})
golang.zx2c4.com/wireguard at v0.0.0-20210427022245-097af6e1351b/tun/wintun/wintun_windows.go:89
+0xad fp=0xc000a39bd8 sp=0xc000a39b68 pc=0x1f3256d
golang.zx2c4.com/wireguard/tun.CreateTUNWithRequestedGUID({0x27b825c,
0x4}, 0x0?, 0x0)
golang.zx2c4.com/wireguard at v0.0.0-20210427022245-097af6e1351b/tun/tun_windows.go:75
+0x4d fp=0xc000a39c50 sp=0xc000a39bd8 pc=0x1f3384d
golang.zx2c4.com/wireguard/tun.CreateTUN(...)
golang.zx2c4.com/wireguard at v0.0.0-20210427022245-097af6e1351b/tun/tun_windows.go:63
More information about the WireGuard
mailing list