genRange crashes with ClOpen when lower bound equals upper bound

Aberta Para iniciantes
#166 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
haskell
Domínio
testing-qa

Direção de pesquisa

Leia src/Codec/CBOR/Cuddle/CBOR/Gen.hs, começando por genRange e seu helper range, e reproduza o caso vazio 5...5 com limites ClOpen. Valide o intervalo ajustado antes de choose ou antiChoose e considere o problema resolvido quando intervalos vazios produzirem um erro claro em vez de um crash por intervalo inválido.

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

Descrição

bug

Description

genRange can crash with an invalid choose range when the lower bound equals the upper bound and bounds are ClOpen.

Location

src/Codec/CBOR/Cuddle/CBOR/Gen.hs, genRange function

Details

When a == b and the range bound is ClOpen, the range helper computes (x, pred y), producing an upper bound strictly less than the lower bound. This causes choose/antiChoose to crash with an invalid range.

For example, a CDDL range like 5...5 (exclusive on both ends) results in an empty range that choose cannot handle.

Suggested fix

Validate that the range is non-empty after applying bounds, and emit a clear error message for empty ranges instead of crashing inside choose.

Linguagem predominante
Haskell
Estrelas
8
Forks
5
Merge médio
3d 12h
PRs com merge (30d)
4

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 IntersectMBO/cuddle

Todas as issues de IntersectMBO/cuddle

Issues semelhantes

Mais issues de Haskell

Receba novas issues na sua caixa de entrada

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