open-standards/wai/http-conformance/falsify/recovery-record-unchecked.patch
Transaction Science 8925c221f4 http-conformance falsify: two patches regenerated against step6 as the train left it
#433 extended the comment above step6's binding-recovery arm, and the train moved its
lines, so decision-unchecked and recovery-record-unchecked no longer applied
(HTTP corpus falsify shards 0/3 and 2/3 failed). Each patch makes the same edit as
before, against the new context.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 03:56:33 -04:00

17 lines
1,008 B
Diff

# must fail: receipts_binding_recovery receipts_binding_recovery_object_not_held receipts_binding_recovery_no_matcher
# a binding-recovery record accepted without its declaration, publisher or match (receipts::step6)
diff --git a/wai/wai-rs/src/http_binding/receipts.rs b/wai/wai-rs/src/http_binding/receipts.rs
index a9ad67595..7ae0d84e2 100644
--- a/wai/wai-rs/src/http_binding/receipts.rs
+++ b/wai/wai-rs/src/http_binding/receipts.rs
@@ -669,8 +669,8 @@ fn step6(
// (jwp-receipts §2.6.4), with a verified delivery receipt for an object of its span:
// the first passed one within it, else the first, whose check reports why not.
ClaimBody::BindingRecovery(r) => {
- if passed.is_empty() {
- return Err(ReceiptRefusal::ContextNotHeld);
+ if passed.len() < usize::MAX {
+ return Ok(());
}
let d = declaration_of(&r.declaration, fetch)?;
if let ClaimBody::SoftBindingSpan(s) = &d.body {