mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-15 12:51:00 +02:00
Avoid double free in simplicity pointer when copying PrecomputedTransactionData
We cannot put a raw pointer into a class that has a default copy constructor.
This commit is contained in:
parent
df4e99dca3
commit
3a80782963
4 changed files with 15 additions and 9 deletions
|
|
@ -2669,7 +2669,7 @@ void PrecomputedTransactionData::Init(const T& txTo, std::vector<CTxOut>&& spent
|
|||
simplicityRawTx.version = txTo.nVersion;
|
||||
simplicityRawTx.lockTime = txTo.nLockTime;
|
||||
|
||||
m_simplicity_tx_data = simplicity_elements_mallocTransaction(&simplicityRawTx);
|
||||
m_simplicity_tx_data = SimplicityTransactionUniquePtr(simplicity_elements_mallocTransaction(&simplicityRawTx));
|
||||
|
||||
m_bip341_taproot_ready = true;
|
||||
}
|
||||
|
|
@ -3121,7 +3121,7 @@ bool GenericTransactionSignatureChecker<T>::CheckSimplicity(const valtype& progr
|
|||
|
||||
assert(txdata->m_simplicity_tx_data);
|
||||
assert(simplicityTapEnv);
|
||||
if (!simplicity_elements_execSimplicity(&error, 0, txdata->m_simplicity_tx_data, nIn, simplicityTapEnv, txdata->m_hash_genesis_block.data(), budget, 0, program.data(), program.size(), witness.data(), witness.size())) {
|
||||
if (!simplicity_elements_execSimplicity(&error, 0, txdata->m_simplicity_tx_data.get(), nIn, simplicityTapEnv, txdata->m_hash_genesis_block.data(), budget, 0, program.data(), program.size(), witness.data(), witness.size())) {
|
||||
assert(!"simplicity_elements_execSimplicity internal error");
|
||||
}
|
||||
simplicity_elements_freeTapEnv(simplicityTapEnv);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue