Skip to content

Fix radio message argument parsing crash - #258

Open
drebbe-intrepid wants to merge 1 commit into
masterfrom
codex/fix-238-radio-keywords
Open

drebbe-intrepid wants to merge 1 commit into
masterfrom
codex/fix-238-radio-keywords

Conversation

@drebbe-intrepid

Copy link
Copy Markdown
Collaborator

Fixes #238.

create_neovi_radio_message() could read past its keyword array and crash Python. Terminate the array with NULL and match the seven b parser destinations to unsigned char, preserving byte-range validation and existing message encoding.

Add 26 hardware-independent subprocess regression cases covering defaults, all keywords, positional arguments, the last keyword alone, unknown keywords, and negative/overflow/non-integer relay and LED values. Windows crash dialogs are suppressed in child processes.

Validation:

  • Baseline Windows x64 / CPython 3.14.5: all-keywords case reproduced access violation 0xC0000005 (defaults happened to pass in this build).
  • Fixed Windows x64 / CPython 3.14.5: 56 tests passed.
  • Fixed Windows x64 / CPython 3.12.10: 56 tests passed.
  • Independent critic /root/critic_238: 26 regression tests passed; explicitly agreed with the final diff. Builder explicitly agrees.
  • Reviewed commit: 55411f8 (verified reviewed file blobs).

No device access performed. Parent coordinator retains CI acceptance, hardware testing, integration and merge.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P1] create_neovi_radio_message() crashes because its keyword array is not null-terminated

1 participant