Skip to content

Comments

fix: propagate bozo flag from entry-level fields#75

Merged
bug-ops merged 5 commits intomainfrom
fix/issue-70-entry-bozo
Feb 23, 2026
Merged

fix: propagate bozo flag from entry-level fields#75
bug-ops merged 5 commits intomainfrom
fix/issue-70-entry-bozo

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Feb 23, 2026

Summary

  • Thread bozo signal through entry-level parsers (parse_item, parse_entry, parse_rss10_item) via &mut bool
  • Replace read_text_str with read_text at entry-level call sites, OR-accumulating the bozo flag
  • Set feed.bozo = true and feed.bozo_exception when any entry field contains unresolvable entities
  • Covers RSS 2.0, Atom 1.0, and RSS 1.0 parsers

Test plan

  • 8 new tests added across all three parsers (positive + negative)
  • 3 new fixture files in tests/fixtures/malformed/
  • All 483 lib/bin tests pass
  • clippy clean, fmt clean
  • Security audit: no unsafe, no panic paths, no new DoS vectors

Closes #70

@github-actions github-actions bot added type: tooling Development tools, CI/CD, or infrastructure component: core feedparser-rs-core Rust library component: python Python bindings (PyO3) component: node Node.js bindings (napi-rs) area: parser Feed parsing logic area: rss RSS 0.9x, 1.0, 2.0 support area: atom Atom 1.0 support lang: rust Rust code size: L Large PR (<500 lines changed) labels Feb 23, 2026
Thread bozo signal through parse_item, parse_entry, and parse_rss10_item
by replacing read_text_str with read_text and OR-accumulating the bozo
flag via &mut bool. Covers title, description, summary, content, id,
author, and namespace extension fields across RSS 2.0, Atom, and RSS 1.0
parsers.

Closes #70
@bug-ops bug-ops force-pushed the fix/issue-70-entry-bozo branch from 42cccb8 to 45e811f Compare February 23, 2026 11:51
@github-actions github-actions bot added the type: documentation Improvements or additions to documentation label Feb 23, 2026
@github-actions github-actions bot added the component: tests Test suite or test infrastructure label Feb 23, 2026
Replace inline XML in unit tests with fixture files from
tests/fixtures/malformed/. Consolidate entry-level bozo assertions
in integration_tests.rs using load_fixture helper.
@github-actions github-actions bot added type: build Build system, dependencies, or tooling component: dependencies Dependency updates or management lang: javascript JavaScript/TypeScript code size: XXL Huge PR (1000+ lines changed) and removed size: L Large PR (<500 lines changed) labels Feb 23, 2026
@bug-ops bug-ops enabled auto-merge (squash) February 23, 2026 12:18
@bug-ops bug-ops merged commit 4a9e9a5 into main Feb 23, 2026
29 checks passed
@bug-ops bug-ops deleted the fix/issue-70-entry-bozo branch February 23, 2026 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: atom Atom 1.0 support area: parser Feed parsing logic area: rss RSS 0.9x, 1.0, 2.0 support component: core feedparser-rs-core Rust library component: dependencies Dependency updates or management component: node Node.js bindings (napi-rs) component: python Python bindings (PyO3) component: tests Test suite or test infrastructure lang: javascript JavaScript/TypeScript code lang: rust Rust code size: XXL Huge PR (1000+ lines changed) type: build Build system, dependencies, or tooling type: documentation Improvements or additions to documentation type: tooling Development tools, CI/CD, or infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Propagate bozo flag from entry-level fields

1 participant