From: Shahyar Date: Fri, 22 Aug 2014 22:07:49 +0000 (-0700) Subject: Fix malformed UTF-8 going to query profiler X-Git-Tag: 1.31.0-rc.0~14094^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/pie.php?a=commitdiff_plain;h=fcd3b60903c82ff4d6c48f956d92cd57b5598370;p=lhc%2Fweb%2Fwiklou.git Fix malformed UTF-8 going to query profiler Bug: 69926 Change-Id: I1c2e3f22104792fbc59491b1c6a17f2a6a0dd0b6 --- diff --git a/includes/debug/MWDebug.php b/includes/debug/MWDebug.php index fb11f368ea..c2f22233bb 100644 --- a/includes/debug/MWDebug.php +++ b/includes/debug/MWDebug.php @@ -335,6 +335,28 @@ class MWDebug { return -1; } + // Replace invalid UTF-8 chars with a square UTF-8 character + // This prevents json_encode from erroring out due to binary SQL data + $sql = preg_replace( + '/( + [\xC0-\xC1] # Invalid UTF-8 Bytes + | [\xF5-\xFF] # Invalid UTF-8 Bytes + | \xE0[\x80-\x9F] # Overlong encoding of prior code point + | \xF0[\x80-\x8F] # Overlong encoding of prior code point + | [\xC2-\xDF](?![\x80-\xBF]) # Invalid UTF-8 Sequence Start + | [\xE0-\xEF](?![\x80-\xBF]{2}) # Invalid UTF-8 Sequence Start + | [\xF0-\xF4](?![\x80-\xBF]{3}) # Invalid UTF-8 Sequence Start + | (?<=[\x0-\x7F\xF5-\xFF])[\x80-\xBF] # Invalid UTF-8 Sequence Middle + | (? $sql, 'function' => $function,