diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-11-01 22:01:52 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-11-01 22:01:52 +0100 |
commit | b21de2e398b3760b51be4d2325c114b8727b72f0 (patch) | |
tree | 44070953b0669ce986c7fde7c34a36f63e2d069e /WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift | |
parent | Global: OK over Ok (diff) | |
download | wireguard-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 '')
-rw-r--r-- | WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift | 4 |
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 |