Conversation
RFC 4880, section 4.3, states that a packet tag must not have the value 0, which is reserved. The packet parser previously accepted such a header and skipped the packet as unknown, while GnuPG rejects the same input, so the behaviour was reported as an interop difference found by differential fuzzing. stream_peek_packet_hdr() now returns RNP_ERROR_BAD_FORMAT for both the new-format and the old-format spellings of tag 0, which covers the parsing, dumping and keyring load paths that share this header gate. Other reserved tag values, which the RFC does not single out in the same way, continue to be skipped. Fixes #2397.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2489 +/- ##
==========================================
- Coverage 85.45% 85.43% -0.03%
==========================================
Files 125 125
Lines 23042 23042
==========================================
- Hits 19691 19685 -6
- Misses 3351 3357 +6 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
Author
|
@ni4 a small batch of CI and process pull requests has been prepared from the issue backlog, each of which needs only your approval:
Whenever time allows, a look at any of these would be much appreciated. |
ni4
pushed a commit
that referenced
this pull request
Sep 24, 2026
The aggregated coverage report is assembled from uploads of many CI legs across backends and platforms, and rounding differences between those uploads shift the project percentage by a few hundredths of a point. This makes the strict zero-drift project gate fail on pull requests that do not reduce coverage, for example #2489 and #2492. A 0.1 percent threshold absorbs the aggregate noise while genuine regressions still fail the check.
This branch has not been deployed
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.
Summary
stream_peek_packet_hdr()now returnsRNP_ERROR_BAD_FORMATwhen the decoded tag is 0, for both the new-format (0xc0) and the old-format (0x80) header spellings, which covers the parsing, dumping and keyring load paths that share this header gate.test_issue_2397_tag0test feeds both header spellings to the packet dump and the key import paths and asserts that each fails.Test plan
rnp_tests.test_issue_2397_tag0passes against both spellings of the reserved tagload_pgp,load_g10,load_g23,load_kbx,stream_key_load, the dump tests andfuzz_dump) continue to pass