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:
Dusty Daemon
2025-06-19 18:31:30 -04:00
committed by Rusty Russell
parent 2e660d9f06
commit 122dae1076

View File

@@ -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;