RUSTSEC-2020-0138: lexer: ReaderResult should be bounded by Sync

Description

Affected versions of this crate implements Sync for ReaderResult<T, E> with the trait bound T: Send, E: Send.

Since matching on the public enum ReaderResult<T, E> provides access to &T & &E, allowing data race to a non-Sync type T or E. This can result in a memory corruption when multiple threads concurrently access &T or &E.

Suggested fix for the bug is change the trait bounds imposed on T & E to be T: Sync, E: Sync.

More Info

https://gitlab.com/nathanfaucett/rs-lexer/-/issues/2

Patched Versions