MDL-40676 ignore null bytes

This commit is contained in:
Petr Škoda
2013-09-02 12:27:58 +08:00
committed by Dan Poltawski
parent 5218a6e8fb
commit 71b06edf6b
5 changed files with 8 additions and 1 deletions
+3
View File
@@ -95,6 +95,9 @@ function min_fix_utf8($value) {
error_reporting($olderror ^ E_NOTICE);
}
// No null bytes expected in our data, so let's remove it.
$value = str_replace("\0", '', $value);
static $buggyiconv = null;
if ($buggyiconv === null) {
$buggyiconv = (!function_exists('iconv') or iconv('UTF-8', 'UTF-8//IGNORE', '100'.chr(130).'€') !== '100€');
+1
View File
@@ -648,6 +648,7 @@ class mssql_native_moodle_database extends moodle_database {
} else {
$param = str_replace("'", "''", $param);
$param = str_replace("\0", "", $param);
$return .= "N'$param'";
}
@@ -727,6 +727,7 @@ class sqlsrv_native_moodle_database extends moodle_database {
$return .= $param;
} else {
$param = str_replace("'", "''", $param);
$param = str_replace("\0", "", $param);
$return .= "N'$param'";
}
+2
View File
@@ -1181,6 +1181,8 @@ function fix_utf8($value) {
// shortcut
return $value;
}
// No null bytes expected in our data, so let's remove it.
$value = str_replace("\0", '', $value);
// Lower error reporting because glibc throws bogus notices.
$olderror = error_reporting();
+1 -1
View File
@@ -486,7 +486,7 @@ class moodlelib_testcase extends advanced_testcase {
$this->assertEquals($object, fix_utf8($object));
// valid utf8 string
$this->assertSame("žlutý koníček přeskočil potůček \n\t\r\0", fix_utf8("žlutý koníček přeskočil potůček \n\t\r\0"));
$this->assertSame("žlutý koníček přeskočil potůček \n\t\r", fix_utf8("žlutý koníček přeskočil potůček \n\t\r\0"));
// invalid utf8 string
$this->assertSame('aš', fix_utf8('a'.chr(130).'š'), 'This fails with buggy iconv() when mbstring extenstion is not available as fallback.');