Raise when describeTypes.json 'types' field is missing or malformed - #45
Open
elhoim wants to merge 1 commit into
Open
Raise when describeTypes.json 'types' field is missing or malformed#45elhoim wants to merge 1 commit into
elhoim wants to merge 1 commit into
Conversation
get_valid_types() silently returned an empty set whenever the upstream describeTypes.json response was missing the 'types' key or had it as a non-list value. This let fetch_describe_types()'s own format check pass while valid_types stayed empty, so every subsequent invocation died later at the 'No valid MISP attribute type found.' check with no indication of the real cause (an upstream schema change). get_valid_types() now raises a RuntimeError describing the actual problem when 'types' is missing, not a list, or empty. The existing try/except around the call in main() already reports exceptions from this path as '[!] Unable to fetch describeTypes.json: ...', so the fix surfaces a specific, actionable error instead of a generic downstream failure.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Finding 14 (Medium) —
bin/cli.py:77Problem
get_valid_types returns an empty set rather than raising when 'types' is missing or not a list, so an upstream schema change passes fetch_describe_types' own check and makes every invocation die at :926 with a generic message naming no cause.
Fix
get_valid_types() in bin/cli.py silently returned an empty set whenever describeTypes.json's "types" field was missing or not a list, letting fetch_describe_types' own shape check pass while valid_types stayed empty. This caused every invocation to die later at the generic "No valid MISP attribute type found." check with no indication that the real cause was an upstream schema change. The fix makes get_valid_types() raise a RuntimeError describing the actual problem (missing, non-list, or empty "types") when the field is malformed. The existing try/except around the call site (bin/cli.py, main()) already reports exceptions from this path as "[!] Unable to fetch describeTypes.json: ...", so the fix surfaces a specific, actionable error instead of a generic downstream failure, with no change needed at the call site.
Verification
Reproduced against the unmodified code at
9b8c605, then re-checked after the change.Before
After
python bin/cli.py --helpexits 0 and the module still imports cleanly. Verification was performed offline against the pure functions — no runningmisp-modulesinstance is required.Branched from
9b8c605. This PR addresses only this finding; the other findings from the same review are in separate PRs, so they will need rebasing against each other as they merge.🤖 Generated with Claude Code
https://claude.ai/code/session_01DYX4TKA5inzByJ4qGWKjqh