Repository navigation
fix(corekit): end a cut list of schema items with the data, not in zero-filled items (#2756) - #2758
Merged
Merged
Conversation
Owner
Author
|
NEEDS CHANGES at
|
…ro-filled items (#2756) A list of schema items whose length runs past the data zero-fills its octets to that length (#2686) and read items on through the zeros, so a framed IGMPv3 Report cut inside its records listed a record the capture never held, and a cut HTTP/2 SETTINGS frame listed settings of identifier and value zero. * ListField: no item is read past the octets present; the item the data ends inside still reads its missing octets as zeros, and the cut stays the schema's short read, quietly. * _zero_filled_items: yield a stream and give back to the padding ledger the zeros the items leave unread, so they are not counted as octets read. * HTTPv2: a SETTINGS frame cut inside its settings, and unedited, rebuilds its settings with zeros after them to the Length it declares, so the rebuild is byte-exact; an edited one computes its Length as a whole frame does. * Tests: a framed IGMPv3 sweep and a sweep over every list of schema items; the #2659, #2686 and IGMP cut tests no longer expect the zero-filled items.
JarryShaw
force-pushed
the
fix/2756-igmpv3-framed-phantom-record
branch
from
November 4, 2026 06:17
71f5a46 to
5b967c7
Compare
Owner
Author
|
GOOD TO GO at
|
Contributor
|
Coverage: 94.45% (unit tier, Python 3.15,
Per-file detail: the |
This was referenced Nov 4, 2026
JarryShaw
added a commit
that referenced
this pull request
Nov 4, 2026
- Fixed: a cut header's rebuild keeps the next layer its parse had, where 1.5.x rebuilt a cut Ethernet header's Raw as NoPayload, and that Raw carries no error (#2759), a new entry; old values measured against v1.5.1. - Amended unreleased entries (#2758): a cut list of schema items ends with the data, the item the cut lands inside zero-filled and none past it, in the ListField, IGMP and HTTP/2 SETTINGS entries, the last also rebuilding at its declared Length or a recomputed one once edited. - Folded (#2755): a counted item the data ends inside reads as a quiet short read, into the ListField and IGMP entries. - CHANGELOG.md regenerated; util/changelog_md.py --check passes.
Merged
5 tasks done
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.
make pylint,make mypy,make isort)make testpasses, and a test case covers the changeWhat is the purpose of your pull request?
fix— corrects a defectDescription of your pull request and other information
A list of schema items cut short of its declared length was zero-filled to that length (#2686), and items were then read on through the zeros. A framed IGMPv3 Report cut inside its records therefore listed records the capture never held, and a cut HTTP/2 SETTINGS frame listed
0:0settings.ListFieldstops before any item that would start past the captured octets. The item the cut lands inside still reads its missing octets as zeros, and the cut stays a quiet short read. Thepacket length < 0warning from a trailing zero item is gone._zero_filled_itemsgives the zeros left unread back to the padding budget.HTTPv2._make_http_settingspads a cut frame's settings with zeros to its declared Length, so parse → rebuild stays byte-exact.GroupRecord.sources) still read uncaptured items as zeros.Closes #2756