From a8e4cd324a4de3e49c76e665cb79d0f2c1934582 Mon Sep 17 00:00:00 2001 From: 4NK Dev Date: Sat, 20 Sep 2025 01:10:16 +0000 Subject: [PATCH] Fix panic in create_transaction when payload is not exactly 32 bytes - Add length check before copy_from_slice to prevent panic - Generate random commitment if payload length is invalid - Fixes issue where empty commitment string caused crash --- src/silentpayments.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/silentpayments.rs b/src/silentpayments.rs index 63af9b2..f1d4ade 100644 --- a/src/silentpayments.rs +++ b/src/silentpayments.rs @@ -198,7 +198,12 @@ pub fn create_transaction( ) -> Result { let mut commitment = [0u8; 32]; if let Some(ref p) = payload { - commitment.copy_from_slice(&p); + if p.len() == 32 { + commitment.copy_from_slice(&p); + } else { + // If payload is not exactly 32 bytes, generate random commitment + thread_rng().fill(&mut commitment); + } } else { thread_rng().fill(&mut commitment); }