Patchman can fail when processing YUM/DNF repository metadata compressed with Zstandard where the frame does not expose a known decompressed content size.
This was encountered against modern EL9 repository metadata.
Current behaviour:
could not determine content size in frame header
Expected behaviour:
Patchman should be able to decompress valid Zstandard repository metadata regardless of whether the frame declares its decompressed content size.
Suggested fix:
Use streaming decompression instead of an API which requires the output size to be known, for example:
from io import BytesIO
import zstandard
dctx = zstandard.ZstdDecompressor()
with dctx.stream_reader(BytesIO(contents)) as reader:
decompressed = reader.read()
Impact:
This prevents Patchman from consuming some current EL8/EL9-style repository metadata.
Patchman can fail when processing YUM/DNF repository metadata compressed with Zstandard where the frame does not expose a known decompressed content size.
This was encountered against modern EL9 repository metadata.
Current behaviour:
Expected behaviour:
Patchman should be able to decompress valid Zstandard repository metadata regardless of whether the frame declares its decompressed content size.
Suggested fix:
Use streaming decompression instead of an API which requires the output size to be known, for example:
Impact:
This prevents Patchman from consuming some current EL8/EL9-style repository metadata.