]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commit
WireGuardKit: fix incorrect IP address allocation size
authorJohn Biggs <john.biggs@proton.ch>
Tue, 15 Nov 2022 19:50:15 +0000 (20:50 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Wed, 8 Feb 2023 16:08:40 +0000 (13:08 -0300)
commit12b095470ad29ecea7436088f6e5fa701e6445a6
treed8a75ce1d129d5ebeaf77c4ea89c13471d4a041f
parent9c07693951d570c608d92eccf5d5e6a4d30633d6
WireGuardKit: fix incorrect IP address allocation size

According to [1], the `capacity` parameter is specified as "the number
of instances of T in the re-bound region" and not the total size of the
rebound struct.

Without this patch, there are crashes in the extension with the
following error:

  Fatal error: self must be a properly aligned pointer for types Pointee and T`

Since the subsequent line in the code only reads `sizeof(in_addr)` or
`sizeof(in6_addr)` anyway, change the `capacity` parameter to just be a
count of 1.

[1] https://developer.apple.com/documentation/swift/unsafepointer/withmemoryrebound(to:capacity:_:)

Signed-off-by: John Biggs <john.biggs@proton.ch>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Sources/WireGuardKit/IPAddress+AddrInfo.swift