wallet2: check generate_key_derivation return value
This commit is contained in:
parent
dc6a8014bd
commit
6cbe7bcdd2
|
@ -834,7 +834,12 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
|
||||||
tools::threadpool::waiter waiter;
|
tools::threadpool::waiter waiter;
|
||||||
const cryptonote::account_keys& keys = m_account.get_keys();
|
const cryptonote::account_keys& keys = m_account.get_keys();
|
||||||
crypto::key_derivation derivation;
|
crypto::key_derivation derivation;
|
||||||
generate_key_derivation(tx_pub_key, keys.m_view_secret_key, derivation);
|
if (!generate_key_derivation(tx_pub_key, keys.m_view_secret_key, derivation))
|
||||||
|
{
|
||||||
|
MWARNING("Failed to generate key derivation from tx pubkey, skipping");
|
||||||
|
static_assert(sizeof(derivation) == sizeof(rct::key), "Mismatched sizes of key_derivation and rct::key");
|
||||||
|
memcpy(&derivation, rct::identity().bytes, sizeof(derivation));
|
||||||
|
}
|
||||||
|
|
||||||
// additional tx pubkeys and derivations for multi-destination transfers involving one or more subaddresses
|
// additional tx pubkeys and derivations for multi-destination transfers involving one or more subaddresses
|
||||||
std::vector<crypto::public_key> additional_tx_pub_keys = get_additional_tx_pub_keys_from_extra(tx);
|
std::vector<crypto::public_key> additional_tx_pub_keys = get_additional_tx_pub_keys_from_extra(tx);
|
||||||
|
@ -842,7 +847,11 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
|
||||||
for (size_t i = 0; i < additional_tx_pub_keys.size(); ++i)
|
for (size_t i = 0; i < additional_tx_pub_keys.size(); ++i)
|
||||||
{
|
{
|
||||||
additional_derivations.push_back({});
|
additional_derivations.push_back({});
|
||||||
generate_key_derivation(additional_tx_pub_keys[i], keys.m_view_secret_key, additional_derivations.back());
|
if (!generate_key_derivation(additional_tx_pub_keys[i], keys.m_view_secret_key, additional_derivations.back()))
|
||||||
|
{
|
||||||
|
MWARNING("Failed to generate key derivation from tx pubkey, skipping");
|
||||||
|
additional_derivations.pop_back();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (miner_tx && m_refresh_type == RefreshNoCoinbase)
|
if (miner_tx && m_refresh_type == RefreshNoCoinbase)
|
||||||
|
|
Loading…
Reference in New Issue