Skip to content
This repository has been archived by the owner on Sep 19, 2024. It is now read-only.

Fix memory issues with the csr module #12

Merged
merged 2 commits into from
Aug 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion samples/csr-rust/Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
rust-sample:
cargo build --release
cp target/wasm32-unknown-unknown/release/csr-rust.wasm .
8 changes: 7 additions & 1 deletion samples/csr-rust/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,13 @@ pub unsafe extern "C" fn csr_gen(priv_key: &[u8]) -> i64 {
Err(err) => { println!("error encoding cert request: {}", err); return 0 },
};

((encoded_csr.as_ptr() as i64) << 32) | (encoded_csr.len() as i64)
let encoded_csr_ptr = encoded_csr.as_ptr();
let encoded_csr_len = encoded_csr.len();

// We must tell the rust compiler to abandon the buffer otherwise it will be freed before we can use it at the host side.
std::mem::forget(encoded_csr);

((encoded_csr_ptr as i64) << 32) | (encoded_csr_len as i64)
}

fn main() {}