From a6a9c4a232e7b16974e020138a515e565718e00b Mon Sep 17 00:00:00 2001 From: Harrm Date: Thu, 1 Aug 2024 11:36:12 +0300 Subject: [PATCH] Fix deallocation of assigned_cores inside sr25519_relay_vrf_modulo_assignments_cert_v2 (#2) * Fix deallocation of assigned_cores inside sr25519_relay_vrf_modulo_assignments_cert_v2 --- crates/bandersnatch_vrfs/Cargo.lock | 18 +++++++++--------- crates/schnorrkel/src/sr25519.rs | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/bandersnatch_vrfs/Cargo.lock b/crates/bandersnatch_vrfs/Cargo.lock index 1e97b5c..8be6b4a 100644 --- a/crates/bandersnatch_vrfs/Cargo.lock +++ b/crates/bandersnatch_vrfs/Cargo.lock @@ -1385,7 +1385,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -1405,7 +1405,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "proc-macro2", "quote", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "environmental", "parity-scale-codec", @@ -1425,7 +1425,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -1444,7 +1444,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "Inflector", "expander", @@ -1457,12 +1457,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "impl-serde", "parity-scale-codec", @@ -1474,7 +1474,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "parity-scale-codec", "tracing", @@ -1485,7 +1485,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" dependencies = [ "impl-trait-for-tuples", "log", diff --git a/crates/schnorrkel/src/sr25519.rs b/crates/schnorrkel/src/sr25519.rs index 8670751..793a7ff 100644 --- a/crates/schnorrkel/src/sr25519.rs +++ b/crates/schnorrkel/src/sr25519.rs @@ -848,8 +848,8 @@ pub unsafe extern "C" fn sr25519_relay_vrf_modulo_assignments_cert_v2( if let Some((vrf_in_out, vrf_proof, _)) = maybe_assignment { let len = assigned_cores.len(); - *cores_out = assigned_cores.as_mut_ptr(); *cores_out_sz = assigned_cores.len() as u64; + *cores_out = (*Box::<[u32]>::into_raw(assigned_cores)).as_mut_ptr(); cert_output.data = *vrf_in_out.as_output_bytes(); cert_proof.data = vrf_proof.to_bytes();