{"record":{"id":"fc62166dabcf0a20","repo":"XTLS/Xray-core","slug":"invalid-padding-record-length-d","errorCode":null,"errorMessage":"invalid padding record length: %d","messagePattern":"invalid padding record length: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"transport/internet/finalmask/xmc/padding.go","lineNumber":232,"sourceCode":"\t\twritten += chunkLength\n\t\tif i == 0 {\n\t\t\tclear(buffer[:header.Len()])\n\t\t}\n\t}\n\tif written != recordLength {\n\t\treturn fmt.Errorf(\"padding chunks total %d, want %d\", written, recordLength)\n\t}\n\treturn nil\n}\n\nfunc readPaddingTurn(r io.Reader, turn paddingTurn, prefixLength int) error {\n\tencodedLength, headerLength, err := readVarintWithLength(r)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"read padding header: %w\", err)\n\t}\n\trecordLength := int(encodedLength)\n\tif recordLength < headerLength || recordLength > maxPaddingTurnLength {\n\t\treturn fmt.Errorf(\"invalid padding record length: %d\", recordLength)\n\t}\n\ttotalLength := prefixLength + recordLength\n\tif !paddingTurnAcceptsLength(turn, totalLength) {\n\t\tif len(turn.variants) > 0 {\n\t\t\treturn fmt.Errorf(\"padding turn length %d is not an allowed variant\", totalLength)\n\t\t}\n\t\treturn fmt.Errorf(\"padding turn length %d is outside %d-%d\", totalLength, turn.minLength, turn.maxLength)\n\t}\n\n\tvar buffer [paddingBufferLength]byte\n\tremaining := recordLength - headerLength\n\tfor remaining > 0 {\n\t\tchunkLength := min(remaining, len(buffer))\n\t\tif _, err := io.ReadFull(r, buffer[:chunkLength]); err != nil {\n\t\t\treturn fmt.Errorf(\"read padding body: %w\", err)\n\t\t}\n\t\tremaining -= chunkLength\n\t}","sourceCodeStart":214,"sourceCodeEnd":250,"githubUrl":"https://github.com/XTLS/Xray-core/blob/7d214f8b094f75322fa3990f8aadad1c912f24f5/transport/internet/finalmask/xmc/padding.go#L214-L250","documentation":"Error \"invalid padding record length: %d\" thrown in XTLS/Xray-core.","triggerScenarios":"Thrown at transport/internet/finalmask/xmc/padding.go:232 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7d214f8b094f75322fa3990f8aadad1c912f24f5","analyzedAt":"2026-08-15T14:26:24.325Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}