genControl .lt crashes when controller literal is 0
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
Research direction
Open src/Codec/CBOR/Cuddle/CBOR/Gen.hs and start at genControl, focusing on the CtlOp.Lt case for PTUInt. Reproduce the controller-literal-0 input, then verify that it reports a clear empty-range error instead of crashing while existing generation behavior remains unchanged.
Written by the indexing model from the issue text.
Description
Description
genControl crashes when the .lt operator is used with a controller literal of 0, because choose receives an invalid range.
Location
src/Codec/CBOR/Cuddle/CBOR/Gen.hs, genControl function
Details
(CtlOp.Lt, CTree.Literal (Value (VUInt n) _)) -> case target of
CTree.Postlude PTUInt -> S . TInteger <$> choose (0, fromIntegral n - 1)
When n == 0, choose (0, fromIntegral n - 1) becomes choose (0, -1), which is an invalid range.
Suggested fix
Handle n == 0 explicitly with a clear error message about the empty range (there are no unsigned integers less than 0).
- Dominant language
- Haskell
- Stars
- 8
- Forks
- 5
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 4
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from IntersectMBO/cuddle
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
IntersectMBO/cuddle#167 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
IntersectMBO/cuddle#166 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 43/100
IntersectMBO/cuddle#223 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
IntersectMBO/cuddle#217 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
IntersectMBO/cuddle#215 ·
All issues in IntersectMBO/cuddle
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
IntersectMBO/cardano-ledger#6276 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
OpenZeppelin/canton-contracts#92 ·
Maintainers usually reply within 1 day