Skip to content

Fix #172, Move DS_TableFindMsgID lookups out of DS_AddMidCmd conditions - #173

Open
chillfig wants to merge 1 commit into
nasa:devfrom
chillfig:fix-172-DS_AddMidCmd-assignment-in-conditions
Open

chillfig wants to merge 1 commit into
nasa:devfrom
chillfig:fix-172-DS_AddMidCmd-assignment-in-conditions

Conversation

@chillfig

@chillfig chillfig commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

name: FSW Code Change
about: Flight Software code changes
labels: fsw

Description of Change

Helps DS satisfy JPL Rule 19 and MISRA C:2012 Rule 13.4

  • Replace the single FilterTableIndex with two named locals.
    • ExistingIndex [index of the MID if DS already tracks it]
    • UnusedIndex [first free filter table slot]

Both lookups now run as plain statements ahead of the if/else logic, and the conditions only test the results.

  • Initialize both to DS_INDEX_NONE instead of 0, since 0 is a valid filter table index.
  • Guard the lookups with a check for a filter table since DS dereferences the filter table pointer at lookup, so the lookups must only run when a table is loaded.

Linked Issue

Closes #172

Requirements Impact

  • Requirement ID(s):
  • Requirements updated as necessary
  • Existing requirements are still satisfied by this change

Testing Evidence

CI shows maintained coverage

Unit Tests (UT Assert)

CI shows maintained coverage

COSMOS Test Suite

N/A

Areas of Expertise Touched

  • ASTRO
  • CI/CD
  • COSMOS
  • Cybersecurity
  • Docker
  • EDS
  • Git
  • PSPs
  • SBN
  • SMP
  • Tables
  • TSN
  • Unit Tests
  • Other

Author Checklist

  • Linked GitHub issue is referenced above
  • Code has been formatted with .clang-format
  • Static analysis workflows ran and passed
  • Unit tests (UT Assert) updated/added to cover code changes
  • Unit test workflows ran and passed
  • COSMOS test suite was run; tests updated/added if relevant changes were made
  • Requirements have been reviewed; updated or confirmed still satisfied (see above)
  • Testing evidence is included above
  • Self-review of the diff completed

Reviewer Checklist

  • Code logic is correct and matches the stated intent
  • Code is readable, maintainable, and follows project conventions (ask your lead if you are unsure of where to find these conventions)
  • .clang-format has been applied
  • Static analysis results reviewed and acceptable
  • The change has been exercised by the unit tests (not just that tests pass — the new/changed code paths are actually covered)
  • COSMOS test suite was executed against this change and results reviewed (or confirmed N/A with justification)
  • Reviewer has independently verified the change behaves as described (e.g., by running the tests locally, reviewing CI output in detail, or performing additional ad-hoc testing as warranted)
  • Memory safety reviewed (allocation, bounds, lifetime, stack usage)
  • Requirements impact reviewed and appropriate
  • Error handling is appropriate
  • Appropriate Expert areas have been reviewed

Reviewer Testing Notes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DS_AddMidCmd assigns inside if conditions

1 participant