from_raw_os_error is inconsistent between raw and libc

Aberta
#1,593 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

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

Direção de pesquisa

Compare from_raw_os_error em src/backend/linux_raw/io/errno.rs, por volta das linhas 80-97, com a implementação de libc em src/backend/libc/io/errno.rs, por volta das linhas 1107-1109. Rastreie como zero e outros valores inválidos são tratados, depois determine o comportamento consistente que não cause panic e verifique se ambos os backends o seguem.

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

Descrição

Values like zero panic on raw and ignored on libc.

https://github.com/bytecodealliance/rustix/blob/c4caf5caaa7e93828a2e4a4cdba1dd0171e45717/src/backend/linux_raw/io/errno.rs#L80-L97

https://github.com/bytecodealliance/rustix/blob/c4caf5caaa7e93828a2e4a4cdba1dd0171e45717/src/backend/libc/io/errno.rs#L1107-L1109

I think this behavior should be consistent, but also panic is bad, because it is on error path, so if something goes bad (and probably rare and hardly reproducible), panic would make harder to debug such problems or result in unnecessary avoidable crashes.

Probably reset wrong value to EINVAL or something?

Linguagem predominante
Rust
Estrelas
2.1k
Forks
322
Merge médio
5d 16h
PRs com merge (30d)
9

Preparar o ambiente

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 bytecodealliance/rustix

Todas as issues de bytecodealliance/rustix

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.