Is there a way to free the data leaked through `Box::leak`?

I'm interfacing with C code, where one callback (called from C) needs to initialize and return a pointer to a specific data structure, I've used `Box::leak` for this, and later on in another callback I need to free that memory.

Or is there another proper way to allocate and "forget" a rust structure on the heap, and later on free it?