From 9b6facf3b01a1377577a959a5b3eab0895834911 Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 6 May 2020 14:08:54 -0400 Subject: [PATCH] fixed crash of encrypted leaseset without authentication --- libi2pd/Destination.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libi2pd/Destination.cpp b/libi2pd/Destination.cpp index 650ab04b..736390a2 100644 --- a/libi2pd/Destination.cpp +++ b/libi2pd/Destination.cpp @@ -415,10 +415,8 @@ namespace client auto it2 = m_LeaseSetRequests.find (key); if (it2 != m_LeaseSetRequests.end () && it2->second->requestedBlindedKey) { - const uint8_t * secret = nullptr; - if (m_LeaseSetPrivKey) secret = *m_LeaseSetPrivKey; // m_LeaseSetPrivKey ? *m_LeaseSetPrivKey: nullptr invokes copy contructor auto ls2 = std::make_shared (buf + offset, len - offset, - it2->second->requestedBlindedKey, secret, GetPreferredCryptoType ()); + it2->second->requestedBlindedKey, m_LeaseSetPrivKey ? ((const uint8_t *)*m_LeaseSetPrivKey) : nullptr , GetPreferredCryptoType ()); if (ls2->IsValid ()) { m_RemoteLeaseSets[ls2->GetIdentHash ()] = ls2; // ident is not key