Closed sezero closed 1 year ago
In the second module (with the louder sample), this seems to be triggered by the 3rd row of pattern 7 in channel 4, which looks like:
0: A#6 01 --- ---
...
3: A-8 110 g04 180
The actual cause is negative sample position indices underflowing sample buffers. This module doesn't have a bidi sample, so it shouldn't ever have negative sample positions, even temporarily. I suspect frequency overflow, will update.
Okay, no, it's much stupider than that. AddChannel
in virtch.c bounds the current sample position against the loop end with ==
and this frequency generates a step value high enough to skip that value. 🤦♀️
edit: fixing this does NOT fix the first file, only the second. The first file uses a bidi loop, so it needs alternative bounding.
From a fuzz archive from Aug.2019: Files attached with valgrind outputs. Valgrind runs were made on an i686-linux using examples/test/test.c. An example output is inlined below from the 1st file, the rest of them are similar. @AliceLR: Need help with this.
102-xm.tar.gz