Skip to content

fix: require the full 28-byte block-count table in list-blocks responses - #939

Merged
gijzelaerr merged 1 commit into
masterfrom
fix-list-blocks-response-table
Oct 7, 2026
Merged

gijzelaerr merged 1 commit into
masterfrom
fix-list-blocks-response-table

Conversation

@gijzelaerr

Copy link
Copy Markdown
Owner

Fixes #931.

parse_list_blocks_response only required the payload length to be a multiple of four, so an empty or truncated table was reported as zero blocks, and a duplicate block type silently overwrote an earlier count. Native Snap7 requires the data length to be exactly 28 bytes (seven four-byte entries). The parser now requires exactly seven entries with distinct, known type codes and raises S7ProtocolError otherwise. The bundled server already sends the full table.

@gijzelaerr
gijzelaerr force-pushed the fix-list-blocks-response-table branch from 00ebdfa to 1738da4 Compare October 7, 2026 09:58
@gijzelaerr
gijzelaerr merged commit ce0f2cc into master Oct 7, 2026
20 checks passed
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.

parse_list_blocks_response accepts empty or partial tables (native requires exactly 28 bytes)

1 participant