From 970c92157e4727dbd0dd4f2a0093e883c5099769 Mon Sep 17 00:00:00 2001 From: Dean Eigenmann <7621705+decanus@users.noreply.github.com> Date: Mon, 13 Sep 2021 22:02:25 +0200 Subject: [PATCH] fix/pass_memory_correctly (#1) Co-authored-by: Kobi Gurkan --- rln/rln.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/rln/rln.go b/rln/rln.go index 75082d2..133cd19 100644 --- a/rln/rln.go +++ b/rln/rln.go @@ -14,11 +14,16 @@ type RLN struct { } func (r *RLN) Hash(input []byte) []byte { - out := &C.Buffer{} + size := int(unsafe.Sizeof(C.Buffer{})) + out_ptr := C.malloc(C.size_t(size)) - in := toBuffer(input) + size = int(unsafe.Sizeof(C.Buffer{})) + in_ptr := C.malloc(C.size_t(size)) + in := (*C.Buffer)(in_ptr) + *in = toBuffer(input) - C.hash(r.ptr, &in, &in.len, out) + out := (*C.Buffer)(out_ptr) + C.hash(r.ptr, in, &in.len, out) return C.GoBytes(unsafe.Pointer(out.ptr), C.int(out.len)) }