validate_buffers is unsound in certain situations
In asynchro_fast.rs, validate_buffers checks the lengths of wave_in and wave_out and is subtly unsound.
as_ref and as_mut do not necessarily return pointers to the same structure every time, so the length of the objects can change between successive calls to as_mut
The same happens in all the resamplers, not only asynchro_fast. There are multiple calls to as_ref and as_mut in the process functions. I guess the proper way to do it it to call as_ref or as_mut once at the start, and then use that result all the way through.
Has this caused any problems in practice? If not, it may not be worth doing anything about it now. I'm anyway planning to get rid of as_ref and as_mut in the (hopefully) not too distant future. The plan is to replace the current input and output buffers with something that allows abstracting the data layout, so that for example both interleaved and sequential buffers can be used.