splice: Even if the psbt’s “match” the sig data may vary
Since the signature data may vary, we must copy the new psbt into splicing->current_psbt. This never occured during normal operation, but when doing a cross splice there may be vital signature(s) in the psbt that came from another splice that get dropped without this step.
This commit is contained in:
committed by
Rusty Russell
parent
2e660d9f06
commit
122dae1076
@@ -4521,6 +4521,9 @@ static void splice_initiator_user_update(struct peer *peer, const u8 *inmsg)
|
||||
|
||||
/* If there no are no changes, we consider the splice user finalized */
|
||||
if (!interactivetx_has_changes(ictx, ictx->desired_psbt)) {
|
||||
peer->splicing->current_psbt = tal_free(peer->splicing->current_psbt);
|
||||
peer->splicing->current_psbt = clone_psbt(peer->splicing,
|
||||
ictx->desired_psbt);
|
||||
splice_initiator_user_finalized(peer);
|
||||
tal_steal(last_inflight(peer), last_inflight(peer)->psbt);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user