Skip to content
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 use of unsafe in uri/authority.rs #414

Merged
merged 5 commits into from
May 14, 2020

Conversation

sbosnick
Copy link
Contributor

Refactor the common code from three ways of creating an Authority into a private create_authority() function, which removes some code duplication (including duplicated uses of "unsafe"). Add comments describing the implicit preconditions and postconditions in create_authority() and the functions it calls which then make explicit the sound use of "unsafe" (as described in the "Safety" comment in create_authority().

This is part of #412.

Extract the common code from three ways of creating an Authority into a
private create_authority() function.
The comments describe the preconditions and postconditions that together
ensure that the one use of 'unsafe' in uri/authority.rs is sound.
src/uri/authority.rs Outdated Show resolved Hide resolved
@seanmonstar seanmonstar merged commit 59733e1 into hyperium:master May 14, 2020
@sbosnick sbosnick deleted the audit_uri_authority branch May 15, 2020 00:05
@dekellum dekellum mentioned this pull request Dec 14, 2020
BenxiangGe pushed a commit to BenxiangGe/http that referenced this pull request Jul 26, 2021
* Add unit test for rejecting invalid UTF-8

* Add Authority::from_static() test

* Refactor uri::Authority

Extract the common code from three ways of creating an Authority into a
private create_authority() function.

* Add comments to explain the safety of Authority

The comments describe the preconditions and postconditions that together
ensure that the one use of 'unsafe' in uri/authority.rs is sound.

* Fix typo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants