closure_free() should use the free implementation provided by the FSM's allocator.
While attempting to make bindings to the libfsm API for a Rust project, I came across a case where my allocator was giving me the same pointer twice. I added instrumentation that places guard regions on either side of the allocation, and with this, I was able to observe closure_free() attempting to free the internal pointer between the guards rather than the pointer to the start of the allocation.
With this change in place, I was able to run my test program to completion.
closure_free()
should use the free implementation provided by the FSM's allocator.While attempting to make bindings to the libfsm API for a Rust project, I came across a case where my allocator was giving me the same pointer twice. I added instrumentation that places guard regions on either side of the allocation, and with this, I was able to observe
closure_free()
attempting to free the internal pointer between the guards rather than the pointer to the start of the allocation.With this change in place, I was able to run my test program to completion.