id-allocator: fix double-alloc and add is_allocated public fn#120
Merged
Conversation
ShadowCurse
reviewed
May 29, 2026
next_id points to the next *free* id. The implementation of free_id previously would allow id == next_id to be 'freed', despite never being allocated. The implication of this is that a GSI could be double allocated, first by popping `id` from the freed list (next_id remains the same), then a second by incrementing next id. Signed-off-by: James Curtis <jxcurtis@amazon.co.uk>
745d837 to
2d3dd75
Compare
Introduce a new public function, `is_allocated` to the IdAllocator. This allows a program to validate whether ID has already been allocated. An interrupt ID (`id`) is determined to be currently allocated iff: 1. It is within `[range_base, range_end]` and 2. `id < next_id` or `next_id == None` and 3. It is not currently in `freed_ids` Signed-off-by: James Curtis <jxcurtis@amazon.co.uk>
Update CHANGELOG.md to have changes made in this PR. Signed-off-by: James Curtis <jxcurtis@amazon.co.uk>
2d3dd75 to
bbcd621
Compare
ShadowCurse
approved these changes
May 29, 2026
andreeaflorescu
approved these changes
Jun 1, 2026
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.
is_allocatedmethod, so that implementing programs can query whether an id is currently allocated or notRequirements
Before submitting your PR, please make sure you addressed the following
requirements:
git commit -s), and the commit message has max 60 characters for thesummary and max 75 characters for each description line.
test.
Release" section of CHANGELOG.md (if no such section exists, please create one).
unsafecode is properly documented.