aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuardNetworkExtension
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-11-01 22:01:52 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2018-11-01 22:01:52 +0100
commitb21de2e398b3760b51be4d2325c114b8727b72f0 (patch)
tree44070953b0669ce986c7fde7c34a36f63e2d069e /WireGuard/WireGuardNetworkExtension
parentGlobal: OK over Ok (diff)
downloadwireguard-apple-b21de2e398b3760b51be4d2325c114b8727b72f0.tar.xz
wireguard-apple-b21de2e398b3760b51be4d2325c114b8727b72f0.zip
NetworkExtension: check isTunnelClosed before packet existence
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'WireGuard/WireGuardNetworkExtension')
-rw-r--r--WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift4
1 files changed, 2 insertions, 2 deletions
diff --git a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift
index 48f840b..7fc12cf 100644
--- a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift
+++ b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift
@@ -163,9 +163,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
guard let buf = buf else { return 0 }
let wgContext = wgCtxPtr.bindMemory(to: WireGuardContext.self, capacity: 1).pointee
var isTunnelClosed = false
- guard let packet = wgContext.readPacket(isTunnelClosed: &isTunnelClosed) else { return 0 }
+ let packet = wgContext.readPacket(isTunnelClosed: &isTunnelClosed)
if isTunnelClosed { return -1 }
- let packetData = packet.data
+ guard let packetData = packet?.data else { return 0 }
if packetData.count <= len {
packetData.copyBytes(to: buf, count: packetData.count)
return packetData.count