Edit File by line
/home/zeestwma/richards.../wp-inclu.../Requests/src
File: Requests.php
$flg = ord(substr($gz_data, 3, 1));
[1000] Fix | Delete
if ($flg > 0) {
[1001] Fix | Delete
if ($flg & 4) {
[1002] Fix | Delete
list($xlen) = unpack('v', substr($gz_data, $i, 2));
[1003] Fix | Delete
$i += 2 + $xlen;
[1004] Fix | Delete
}
[1005] Fix | Delete
[1006] Fix | Delete
if ($flg & 8) {
[1007] Fix | Delete
$i = strpos($gz_data, "\0", $i) + 1;
[1008] Fix | Delete
}
[1009] Fix | Delete
[1010] Fix | Delete
if ($flg & 16) {
[1011] Fix | Delete
$i = strpos($gz_data, "\0", $i) + 1;
[1012] Fix | Delete
}
[1013] Fix | Delete
[1014] Fix | Delete
if ($flg & 2) {
[1015] Fix | Delete
$i += 2;
[1016] Fix | Delete
}
[1017] Fix | Delete
}
[1018] Fix | Delete
[1019] Fix | Delete
$decompressed = self::compatible_gzinflate(substr($gz_data, $i));
[1020] Fix | Delete
if ($decompressed !== false) {
[1021] Fix | Delete
return $decompressed;
[1022] Fix | Delete
}
[1023] Fix | Delete
}
[1024] Fix | Delete
[1025] Fix | Delete
// If the data is Huffman Encoded, we must first strip the leading 2
[1026] Fix | Delete
// byte Huffman marker for gzinflate()
[1027] Fix | Delete
// The response is Huffman coded by many compressors such as
[1028] Fix | Delete
// java.util.zip.Deflater, Ruby's Zlib::Deflate, and .NET's
[1029] Fix | Delete
// System.IO.Compression.DeflateStream.
[1030] Fix | Delete
//
[1031] Fix | Delete
// See https://decompres.blogspot.com/ for a quick explanation of this
[1032] Fix | Delete
// data type
[1033] Fix | Delete
$huffman_encoded = false;
[1034] Fix | Delete
[1035] Fix | Delete
// low nibble of first byte should be 0x08
[1036] Fix | Delete
list(, $first_nibble) = unpack('h', $gz_data);
[1037] Fix | Delete
[1038] Fix | Delete
// First 2 bytes should be divisible by 0x1F
[1039] Fix | Delete
list(, $first_two_bytes) = unpack('n', $gz_data);
[1040] Fix | Delete
[1041] Fix | Delete
if ($first_nibble === 0x08 && ($first_two_bytes % 0x1F) === 0) {
[1042] Fix | Delete
$huffman_encoded = true;
[1043] Fix | Delete
}
[1044] Fix | Delete
[1045] Fix | Delete
if ($huffman_encoded) {
[1046] Fix | Delete
$decompressed = @gzinflate(substr($gz_data, 2));
[1047] Fix | Delete
if ($decompressed !== false) {
[1048] Fix | Delete
return $decompressed;
[1049] Fix | Delete
}
[1050] Fix | Delete
}
[1051] Fix | Delete
[1052] Fix | Delete
if (substr($gz_data, 0, 4) === "\x50\x4b\x03\x04") {
[1053] Fix | Delete
// ZIP file format header
[1054] Fix | Delete
// Offset 6: 2 bytes, General-purpose field
[1055] Fix | Delete
// Offset 26: 2 bytes, filename length
[1056] Fix | Delete
// Offset 28: 2 bytes, optional field length
[1057] Fix | Delete
// Offset 30: Filename field, followed by optional field, followed
[1058] Fix | Delete
// immediately by data
[1059] Fix | Delete
list(, $general_purpose_flag) = unpack('v', substr($gz_data, 6, 2));
[1060] Fix | Delete
[1061] Fix | Delete
// If the file has been compressed on the fly, 0x08 bit is set of
[1062] Fix | Delete
// the general purpose field. We can use this to differentiate
[1063] Fix | Delete
// between a compressed document, and a ZIP file
[1064] Fix | Delete
$zip_compressed_on_the_fly = ((0x08 & $general_purpose_flag) === 0x08);
[1065] Fix | Delete
[1066] Fix | Delete
if (!$zip_compressed_on_the_fly) {
[1067] Fix | Delete
// Don't attempt to decode a compressed zip file
[1068] Fix | Delete
return $gz_data;
[1069] Fix | Delete
}
[1070] Fix | Delete
[1071] Fix | Delete
// Determine the first byte of data, based on the above ZIP header
[1072] Fix | Delete
// offsets:
[1073] Fix | Delete
$first_file_start = array_sum(unpack('v2', substr($gz_data, 26, 4)));
[1074] Fix | Delete
$decompressed = @gzinflate(substr($gz_data, 30 + $first_file_start));
[1075] Fix | Delete
if ($decompressed !== false) {
[1076] Fix | Delete
return $decompressed;
[1077] Fix | Delete
}
[1078] Fix | Delete
[1079] Fix | Delete
return false;
[1080] Fix | Delete
}
[1081] Fix | Delete
[1082] Fix | Delete
// Finally fall back to straight gzinflate
[1083] Fix | Delete
$decompressed = @gzinflate($gz_data);
[1084] Fix | Delete
if ($decompressed !== false) {
[1085] Fix | Delete
return $decompressed;
[1086] Fix | Delete
}
[1087] Fix | Delete
[1088] Fix | Delete
// Fallback for all above failing, not expected, but included for
[1089] Fix | Delete
// debugging and preventing regressions and to track stats
[1090] Fix | Delete
$decompressed = @gzinflate(substr($gz_data, 2));
[1091] Fix | Delete
if ($decompressed !== false) {
[1092] Fix | Delete
return $decompressed;
[1093] Fix | Delete
}
[1094] Fix | Delete
[1095] Fix | Delete
return false;
[1096] Fix | Delete
}
[1097] Fix | Delete
}
[1098] Fix | Delete
[1099] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function