- Notifications
You must be signed in to change notification settings - Fork42
Remove usage of smallvec#40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Closed
Closed
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Yeah SmallVec is used specifically for its perf benefit here. Note that none of those CVEs affect this crate, which uses relatively simple APIs. We should audit the crate further and try to run it with Folks may be okay with a feature flag. |
For posterity,#54 has replaced use of SmallVec with safe code without regressing performance. |
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Due to safety concerns, we are trying to eliminate use of
smallvec
from our dependencies, starting with the ones in critical paths handling user input.smallvec
contains a large amount ofunsafe
, probably containsUB that just happens to currently be working correctly, and has been the source ofseveral security vulnerabilities in the past. For us, the use of this library in the context of unicode normalisation (which in our application is operating on user input) presents an unacceptable level of risk.There is a performance regression from this change, which is acceptable in our application but may not be in others. If this performance regression is considered an unacceptable tradeoff for safety, then perhaps a feature could be used to enable/disable smallvec usage?