Skip to content

compress/bzip2: Reader behavior diverges from C library #18516

@dsnet

Description

@dsnet

A review of the standard library implementation and the C implementation reveals the following divergent behaviors:

  • Reader does not reject missing terminating repeator value in RLE1 stage.
    Reproducer:
    425a6831314159265359e16e6571000001840020002000211846e0bb9229c284870b732b88
  • Reader chokes in RLE1 stage with suboptimal use of repeater codes:
    Reproducer:
    425a6831314159265359f59a903a000004c40040002000200020a9a082138bb9229c28487acd481d00
  • Reader chokes when given an under-subscribed prefix tree. Unlike DEFLATE, the bzip2 format does not "require" that prefix trees be canonical and complete. This issue is harder to fix without using the exact same prefix implementation as the C library (as most other language ports do).
    Reproducer:
    425a683131415926535958fdd3b000000008007fe02000228630100300797bed2c7a82ee48a70a120b1fba7600

C version used: bzip2-1.0.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsFixThe path to resolution is known, but the work has not been done.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions