Skip to content

Fix SpyMessage attribute deletion crashes - #252

Open
drebbe-intrepid wants to merge 1 commit into
masterfrom
codex/fix-237-message-deletion
Open

drebbe-intrepid wants to merge 1 commit into
masterfrom
codex/fix-237-message-deletion

Conversation

@drebbe-intrepid

Copy link
Copy Markdown
Collaborator

Deleting Data, AckBytes, Header, or ExtraDataPtr on either message type could crash Python because the shared setter inspected a null deletion value. Route deletion through the generic attribute handler before custom conversion or storage changes, preserving normal descriptor errors.

Add 24 subprocess cases covering all six custom setter branches on SpyMessage and SpyMessageJ1850, both unset and populated. Check rejected deletion preserves the payload, lengths and flags, and allows subsequent buffer replacement and destruction.

Validation: Windows x64, CPython 3.14.5; rebuilt native extension; full suite 54 passed. Against the original extension, the new tests reproduced 16 access violations (3221225477); the eight numeric-field cases already passed. No hardware used.

Fixes #237

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] Deleting SpyMessage payload attributes crashes the Python interpreter

1 participant