-
Notifications
You must be signed in to change notification settings - Fork 10
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Audit url #51
Comments
Just looked at the example unsafe block you linked. I think it is safe, and potentially appropriate, but I believe there is a way it can be re-written in safe code. I'll review the rest tomorrow and submit a PR if needed. |
Submitted the PR - servo/rust-url#560 |
The comments look very nice and clear to me. Thanks for doing this! I think one more unsafe block could be trivially rewritten as safe code, I've left a comment on the PR. This leaves only two iterator implementations that return
|
@Shnatsel thanks for the feedback. I've removed the unsafe block as you suggested.
If I'm understanding correctly, these would be changes which change the public interface? |
Those structs seem to be private, so I think that wouldn't be a breaking change. |
https://github.com/servo/rust-url/blob/master/src/form_urlencoded.rs#L125 This is one example of an iterator with an unsafe block. But |
Nah, it's probably me who misinterpreted the rules. Those structs indeed seem to be public, so changing the return type would indeed be a breaking change. Apologies for the confusion. |
In addition, I figured we might want to check i.e., I'm assuming we're doing a PR per project (e.g. |
PRs are easier per project. Tracking issues... dunno, per repo probably, because that's what I'd grep for |
For what its worth, my PR covers the full rust-url repo (but not dependencies). |
Yup. Just looked through it a minute ago and realized it was comprehensive. Regardless, I'll keep this in mind moving forward, and include checklists for bigger projects in case we need to break things up. Thanks @Shnatsel and @JoshMcguigan! |
url: GitHub, crates.io
cargo-geiger
reports numerous usages of unsafe, though only 6 seem to be local to theurl
crate itself.Example unsafe usage in
decode_utf8_lossy
A majority of the remaining unsafe usages consist of, e.g. unicode-normalization and smallvec (#9)
Absolutely no idea if any of these unsafe cases are appropriate or not.
The url crate seems to be widely used enough to check, at least.
The text was updated successfully, but these errors were encountered: