#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]>
17 lines
1,008 B
Diff
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 {
|