Releases: binji/binjgb
Releases · binji/binjgb
v0.1.1: Fix rewind buffer corruption bug
`RewindState` has a `RewindResult` which it checks when it is going to truncat the rewind buffer (after a successful rewind.) If the `RewindResult`'s info pointer is not set, `rewind_truncate_to` assumes that the rewind was not successful, so it doesn't truncate. The bug was that a local `RewindResult` was used instead of the one in `RewindState`, so the info pointer was never set, so the rewind buffer was never truncated. After a rewind, `rewind_append` would append states that were out of order. This would break the binary search of the rewind info. To find the bug, I ended up adding a sanity check function for the rewind buffer. So I decided to keep it.