{"record":{"id":"777bf5118bf2c6bf","repo":"sqlmapproject/sqlmap","slug":"content-length-is-not-permitted-in-trailers","errorCode":null,"errorMessage":"content-length is not permitted in trailers","messagePattern":"content-length is not permitted in trailers","errorType":"exception","errorClass":"H2ProtocolError","httpStatus":null,"severity":"error","filePath":"lib/request/http2.py","lineNumber":842,"sourceCode":"\ndef _extract_data(flags, payload):\n    if not (flags & FLAG_PADDED):\n        return payload\n    if not payload:\n        raise H2ProtocolError(\"padded DATA frame has no pad length\")\n    pad_length = bytearray(payload)[0]\n    if pad_length > len(payload) - 1:\n        raise H2ProtocolError(\"DATA padding exceeds frame payload\")\n    return payload[1:len(payload) - pad_length]\n\n\ndef _parse_content_length(headers, trailers=False):\n    values = []\n    for name, value in headers:\n        if _as_bytes(name).lower() != b\"content-length\":\n            continue\n        if trailers:\n            raise H2ProtocolError(\"content-length is not permitted in trailers\")\n        for part in _as_bytes(value).split(b\",\"):\n            part = part.strip()\n            if not part or not part.isdigit():\n                raise H2ProtocolError(\"invalid content-length field\")\n            values.append(int(part))\n    if not values:\n        return None\n    expected = values[0]\n    if any(value != expected for value in values[1:]):\n        raise H2ProtocolError(\"conflicting content-length fields\")\n    return expected\n\n\ndef _validate_response_field_section(headers, trailers=False):\n    regular_seen = False\n    status = None\n    for name, value in headers:\n        name = _as_bytes(name)","sourceCodeStart":824,"sourceCodeEnd":860,"githubUrl":"https://github.com/sqlmapproject/sqlmap/blob/0a35b20e3953d341be6c7ac75ccb0b3362540c8d/lib/request/http2.py#L824-L860","documentation":"Guard inside _parse_content_length with trailers=True: a trailer section of the response contains a content-length field, which RFC 7230/9110 forbids (content-length is only meaningful in the header section). Fires while validating the final trailer fragment of a response.","triggerScenarios":"Thrown at lib/request/http2.py:842 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove content-length from trailers on the sending side","Treat as a protocol error from the peer"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0a35b20e3953d341be6c7ac75ccb0b3362540c8d","analyzedAt":"2026-08-26T23:02:52.002Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}