From bef9944e48b1b5b2da0283c7e9547842a60f85bb Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Thu, 10 Sep 2020 17:56:42 +1000 Subject: [PATCH] Fix potential race condition --- .../src/Loki/API/Onion Requests/OnionRequestAPI.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPI.swift b/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPI.swift index b1600b72d..91aa19389 100644 --- a/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPI.swift +++ b/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPI.swift @@ -143,10 +143,12 @@ public enum OnionRequestAPI { /// - Note: Exposed for testing purposes. private static func getPath(excluding snode: Snode?) -> Promise { guard pathSize >= 1 else { preconditionFailure("Can't build path of size zero.") } + var paths = OnionRequestAPI.paths if paths.count < pathCount { let storage = OWSPrimaryStorage.shared() storage.dbReadConnection.read { transaction in paths = storage.getOnionRequestPaths(in: transaction) + OnionRequestAPI.paths = paths if paths.count >= pathCount { guardSnodes.formUnion([ paths[0][0], paths[1][0] ]) }