Eighteen patches, each breaking one function of the playlist side and naming the cases that must fail: adjacency (another program date-time, a larger discontinuity sequence), rendering (parts after EXTINF, layer lines after the URI), bandwidth rounding, duration rounding, a delta update read, the session-data line before #EXTM3U, the render digest left out of the signed payload, a receipt under another name, an unchecked parent, the open segment's parts not read for cids, the integer log without interpolation, a waiting utility rule, a look-ahead blind to stalls, an unlabelled figure taken as zero, per-layer bytes as a depth's, and size-blind entry order. falsify/run.sh builds with http and video_manifest and runs the eleven new Python mutations. A depth case at 150 kb/s sits between layer boundaries. Co-Authored-By: Claude Opus 5.5 <[email protected]>
18 lines
767 B
Diff
18 lines
767 B
Diff
# must fail: playlist_receipt_playlists_o9_wai_180_m3u8 live_edge
|
|
# the render digest left out of the signed payload (wai_video_manifest::ManifestReceipt::signing_payload)
|
|
diff --git a/wai/wai-rs/src/wai_video_manifest.rs b/wai/wai-rs/src/wai_video_manifest.rs
|
|
index fd25c628..fb9b1669 100644
|
|
--- a/wai/wai-rs/src/wai_video_manifest.rs
|
|
+++ b/wai/wai-rs/src/wai_video_manifest.rs
|
|
@@ -273,10 +273,7 @@ impl ManifestReceipt {
|
|
// rendering has no canonical form).
|
|
if self.render.is_some() {
|
|
match self.render_digest() {
|
|
- Some(d) => {
|
|
- o.push(1);
|
|
- o.extend_from_slice(&d);
|
|
- }
|
|
+ Some(_) => {}
|
|
None => o.push(2),
|
|
}
|
|
}
|