]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Use ReflectionFunction to check for a present-but-disabled dl() function instead...
authorBrion Vibber <brion@pobox.com>
Fri, 7 Jan 2011 22:48:40 +0000 (14:48 -0800)
committerBrion Vibber <brion@pobox.com>
Fri, 7 Jan 2011 22:48:40 +0000 (14:48 -0800)
We were checking the list as comma-delimited (per the description of it as comma-delimited), but in fact spaces are also accepted, and who knows what else.

lib/common.php

index cd4fbfb15a9455db889c3c52920b1fd17897ddf1..3963402158fc49bdd12dcc576031017268cf5dcd 100644 (file)
@@ -60,8 +60,13 @@ if (!function_exists('dl')) {
     // Fortunately trying to call the disabled one will only trigger
     // a warning, not a fatal, so it's safe to leave it for our case.
     // Callers will be suppressing warnings anyway.
-    $disabled = array_filter(array_map('trim', explode(',', ini_get('disable_functions'))));
-    if (!in_array('dl', $disabled)) {
+    try {
+        // Reading the ini setting is hard as we don't know PHP's parsing,
+        // but we can check if it is disabled through reflection.
+        $dl = new ReflectionFunction('dl');
+        // $disabled = $dl->isDisabled(); // don't need to check this now
+    } catch (ReflectionException $e) {
+        // Ok, it *really* doesn't exist!
         function dl($library) {
             return false;
         }