Browse Source

fixed crash when shows leasesets

pull/1883/head
orignal 2 years ago
parent
commit
e190dab7d6
  1. 5
      daemon/HTTPServer.cpp
  2. 4
      libi2pd/LeaseSet.cpp
  3. 3
      libi2pd/LeaseSet.h

5
daemon/HTTPServer.cpp

@ -625,7 +625,10 @@ namespace http { @@ -625,7 +625,10 @@ namespace http {
if (storeType == i2p::data::NETDB_STORE_TYPE_LEASESET)
ls.reset (new i2p::data::LeaseSet (leaseSet->GetBuffer(), leaseSet->GetBufferLen()));
else
ls.reset (new i2p::data::LeaseSet2 (storeType, leaseSet->GetBuffer(), leaseSet->GetBufferLen()));
{
ls.reset (new i2p::data::LeaseSet2 (storeType));
ls->Update (leaseSet->GetBuffer(), leaseSet->GetBufferLen(), false);
}
if (!ls) return;
s << "<div class=\"leaseset listitem";
if (ls->IsExpired())

4
libi2pd/LeaseSet.cpp

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2022, The PurpleI2P Project
* Copyright (c) 2013-2023, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@ -315,7 +315,7 @@ namespace data @@ -315,7 +315,7 @@ namespace data
{
// standard LS2 header
std::shared_ptr<const IdentityEx> identity;
if (readIdentity)
if (readIdentity || !GetIdentity ())
{
identity = std::make_shared<IdentityEx>(buf, len);
SetIdentity (identity);

3
libi2pd/LeaseSet.h

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2021, The PurpleI2P Project
* Copyright (c) 2013-2023, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@ -145,6 +145,7 @@ namespace data @@ -145,6 +145,7 @@ namespace data
{
public:
LeaseSet2 (uint8_t storeType): LeaseSet (true), m_StoreType (storeType) {}; // for update
LeaseSet2 (uint8_t storeType, const uint8_t * buf, size_t len, bool storeLeases = true, CryptoKeyType preferredCrypto = CRYPTO_KEY_TYPE_ELGAMAL);
LeaseSet2 (const uint8_t * buf, size_t len, std::shared_ptr<const BlindedPublicKey> key, const uint8_t * secret = nullptr, CryptoKeyType preferredCrypto = CRYPTO_KEY_TYPE_ELGAMAL); // store type 5, called from local netdb only
uint8_t GetStoreType () const { return m_StoreType; };

Loading…
Cancel
Save