mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 14:03:52 +01:00
MDL-17868 detection of incorrect hadnling of floats in version numbers - this should prevent dataloss in case it does not work as expected; merged from MOODLE_19_STABLE
This commit is contained in:
parent
442deb2531
commit
61f9c4b4f4
@ -44,6 +44,10 @@
|
||||
print_error('phpvaron', 'debug', '', (object)array('name'=>'file_uploads', 'link'=>$documentationlink));
|
||||
}
|
||||
|
||||
if (is_float_problem()) {
|
||||
print_error('phpfloatproblem', 'admin', '', $documentationlink);
|
||||
}
|
||||
|
||||
/// Check that config.php has been edited
|
||||
|
||||
if ($CFG->wwwroot == "http://example.com/moodle") {
|
||||
|
@ -600,6 +600,7 @@ $string['performance'] = 'Performance';
|
||||
$string['pgcluster'] = 'PostgreSQL Cluster';
|
||||
$string['pgclusterdescription'] = 'PostgreSQL version/cluster parameter for command line operations. If you only have one postgresql on your system or you are not sure what this is, leave this blank.';
|
||||
$string['php50restricted'] = 'PHP 5.0.x has a number of known problems, please upgrade to 5.1.x or downgrade to 4.3.x or 4.4.x';
|
||||
$string['phpfloatproblem'] = 'Detected unexpected problem in handling of PHP float numbers - $a';
|
||||
$string['pleaseregister'] = 'Please register your site to remove this button';
|
||||
$string['pleaserefreshregistration'] = 'Your site has been registered with moodle.org, please consider updating the registration if significant changes happened since your last update, on $a';
|
||||
$string['plugins'] = 'Plugins';
|
||||
|
@ -954,6 +954,18 @@ function admin_critical_warnings_present() {
|
||||
return $SESSION->admin_critical_warning;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detects if float support at least 10 deciman digits
|
||||
* and also if float-->string conversion works as expected.
|
||||
* @return bool true if problem found
|
||||
*/
|
||||
function is_float_problem() {
|
||||
$num1 = 2009010200.01;
|
||||
$num2 = 2009010200.02;
|
||||
|
||||
return ((string)$num1 === (string)$num2 or $num1 === $num2 or $num2 <= (string)$num1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to verify that dataroot is not accessible from web.
|
||||
* It is not 100% correct but might help to reduce number of vulnerable sites.
|
||||
|
Loading…
x
Reference in New Issue
Block a user