FAILURE MAP
← Case archive

FA-26806 / HTTP ranges / Open access

Part headers end at the first double CRLF · case 01

Part headers end at the first double CRLF.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The multipart-client-header-terminator decision uses p=data.rfind("\r\n\r\n") return [data[:p],data[p+4:]] if p>=0 else None.

VERIFIED REPAIR

Apply the bounded decision exactly: p=data.find("\r\n\r\n") return [data[:p],data[p+4:]] if p>=0 else None

Unsuccessful approach: The partial repair uses p=data.find("\r\n") return [data[:p],data[p+2:]] if p>=0 else None, which still violates the stated contract.

Case contract

Split buffered part at the first CRLFCRLF into [header,body], or None if incomplete. Body may contain additional double CRLF sequences.

Why this case matters

Range responses combine representation identity, conditional requests, framing, and partial-object state.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(data):
    p=data.rfind("\r\n\r\n")
    return [data[:p],data[p+4:]] if p>=0 else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('multipart-client-header-terminator fixture 0', solve("H\r\n\r\n"+"p"*N+"\r\n\r\nX"), ["H","p"*N+"\r\n\r\nX"])
check('multipart-client-header-terminator fixture 1', solve("H\r\nX"), None)
check('multipart-client-header-terminator fixture 2', solve("H\r\n\r\nP"), ["H","P"])
check('multipart-client-header-terminator fixture 3', solve("\r\n\r\n"), ["",""])
check('multipart-client-header-terminator fixture 4', solve(""), None)
check('multipart-client-header-terminator fixture 5', solve("A\r\nB\r\n\r\nP"), ["A\r\nB","P"])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
multipart-client-header-terminator fixture 0['H\r\n\r\np', 'X']['H', 'p\r\n\r\nX']Failed
multipart-client-header-terminator fixture 1NoneNonePassed
multipart-client-header-terminator fixture 2['H', 'P']['H', 'P']Passed
multipart-client-header-terminator fixture 3['', '']['', '']Passed
multipart-client-header-terminator fixture 4NoneNonePassed
multipart-client-header-terminator fixture 5['A\r\nB', 'P']['A\r\nB', 'P']Passed

SHA-256 / 7cadbfd6b544dd2be21bf49ffcae306a49ca0d550044e95f6ddd95d735c697d1

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(data):
    p=data.find("\r\n")
    return [data[:p],data[p+2:]] if p>=0 else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('multipart-client-header-terminator fixture 0', solve("H\r\n\r\n"+"p"*N+"\r\n\r\nX"), ["H","p"*N+"\r\n\r\nX"])
check('multipart-client-header-terminator fixture 1', solve("H\r\nX"), None)
check('multipart-client-header-terminator fixture 2', solve("H\r\n\r\nP"), ["H","P"])
check('multipart-client-header-terminator fixture 3', solve("\r\n\r\n"), ["",""])
check('multipart-client-header-terminator fixture 4', solve(""), None)
check('multipart-client-header-terminator fixture 5', solve("A\r\nB\r\n\r\nP"), ["A\r\nB","P"])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
multipart-client-header-terminator fixture 0['H', '\r\np\r\n\r\nX']['H', 'p\r\n\r\nX']Failed
multipart-client-header-terminator fixture 1['H', 'X']NoneFailed
multipart-client-header-terminator fixture 2['H', '\r\nP']['H', 'P']Failed
multipart-client-header-terminator fixture 3['', '\r\n']['', '']Failed
multipart-client-header-terminator fixture 4NoneNonePassed
multipart-client-header-terminator fixture 5['A', 'B\r\n\r\nP']['A\r\nB', 'P']Failed

SHA-256 / 416db51a2d4f4cca5b382a14ae298ee6d4ce2743a3135e947ad2a2f1b993c44a

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(data):
    p=data.find("\r\n\r\n")
    return [data[:p],data[p+4:]] if p>=0 else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('multipart-client-header-terminator fixture 0', solve("H\r\n\r\n"+"p"*N+"\r\n\r\nX"), ["H","p"*N+"\r\n\r\nX"])
check('multipart-client-header-terminator fixture 1', solve("H\r\nX"), None)
check('multipart-client-header-terminator fixture 2', solve("H\r\n\r\nP"), ["H","P"])
check('multipart-client-header-terminator fixture 3', solve("\r\n\r\n"), ["",""])
check('multipart-client-header-terminator fixture 4', solve(""), None)
check('multipart-client-header-terminator fixture 5', solve("A\r\nB\r\n\r\nP"), ["A\r\nB","P"])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
multipart-client-header-terminator fixture 0['H', 'p\r\n\r\nX']['H', 'p\r\n\r\nX']Passed
multipart-client-header-terminator fixture 1NoneNonePassed
multipart-client-header-terminator fixture 2['H', 'P']['H', 'P']Passed
multipart-client-header-terminator fixture 3['', '']['', '']Passed
multipart-client-header-terminator fixture 4NoneNonePassed
multipart-client-header-terminator fixture 5['A\r\nB', 'P']['A\r\nB', 'P']Passed

SHA-256 / 9c94f225a99d8d3d2af93f5f7d31cd1ca9e1e298704bd0a24718c5143da9f5a9

Verification & scope

Deterministic simplified range service, with stipulated local policies and already parsed trusted inputs; not a complete HTTP implementation. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:41:19.344771+00:00.

Case digest / 1492f9fe179eab3cc3b4783189239b845dd75cc2c3608a65a8f9af493bfa0a8b