Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

`Authority::from_static` does not perform adequate validation

Aberta
#879 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
52/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
rust

Direção de pesquisa

Start by reading Authority::from_static and the validation path used by parsing, then compare how both handle the provided https://127.0.0.1 example. The issue identifies no file or test, so locate the relevant URI authority tests and check what behavior they cover. Done means from_static rejects the invalid authority consistently with parsing, with regression coverage.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Version

http 1.3.1 (latest)

Platform

Linux 7.0.0-31

Summary

I'm not sure if this is a documentation issue or a behavioral issue (probably be the latter), but Authority::from_static does not perform proper validation of the provided authority string; it only checks whether each individual byte is valid.

Consider the following code (playground):

use http::uri::Authority;

fn main() {
    // panics
    // dbg!("https://127.0.0.1".parse::<Authority>().unwrap());
    
    // produces "valid" authority
    dbg!(Authority::from_static("https://127.0.0.1"));
}

This code was introduced in a seemingly faulty attempt (here) to make from_static const.

I doubt this is intentional, but if it is, the method should be called from_static_danger_only_validate_bytes or so, and the docs should provide more warning.

Code Sample

Expected Behavior

Both methods should fail, not just parse

Actual Behavior

from_static does not perform sufficient validation.

Additional Context

No response

Linguagem predominante
Rust
Estrelas
1.4k
Forks
385
Merge médio
1d 5h
PRs com merge (30d)
2

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de hyperium/http

Todas as issues de hyperium/http

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.