Repository navigation
Conversation
SuccinctRoles.is_delegated_role() parsed the bin name suffix with int(suffix, 16). int() also accepts a leading sign, surrounding whitespace, underscores between digits and upper case digits, so names like "bin-+f", "bin- f", "bin-0F" or "bin-1_0" were reported as delegated even though get_roles() and get_role_for_target() never produce them. Only accept a suffix that matches the zero-padded lower case hex form used when the bin names are generated. Signed-off-by: Anand Biju <anandbiju71@gmail.com>
This branch has not been deployed
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.
Description of the changes being introduced by the pull request:
SuccinctRoles.is_delegated_role()parses the bin name suffix withint(suffix, 16), butint()also accepts a leading sign, surrounding whitespace, underscores between digits and upper case digits. Because of that, names likebin-+f,bin- f,bin-0Forbin-1_0were reported as delegated even thoughget_roles()andget_role_for_target()never produce them.I added a check that the suffix is exactly the zero-padded lower case hex form used when bin names are generated, and extended
test_is_delegated_role_in_succinct_roleswith these cases (the new cases fail without the fix).Testing:
python3 -m unittest -k test_is_delegated_role_in_succinct_roles test_api: fails before the change, passes aftercoverage run -m unittest: 205 tests OK, coverage 97% (--fail-under 97passes)ruff check,ruff format --diffandmypyon tuf/examples/tests/verify_release/.github/scripts: cleanFixes #3033