]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Ticket 2152: avoid fatal when php.ini disables dl via disabled_functions (function_ex...
authorBrion Vibber <brion@status.net>
Tue, 12 Jan 2010 15:24:43 +0000 (07:24 -0800)
committerBrion Vibber <brion@status.net>
Tue, 12 Jan 2010 15:24:43 +0000 (07:24 -0800)
lib/common.php

index 7342c177a66091bacfef35a22ab960f4b9f6ebf7..b280afec02319d09fe1ff52a7d2e3e544b583c9d 100644 (file)
@@ -45,11 +45,20 @@ define('FOREIGN_FRIEND_RECV', 2);
 
 set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/extlib/');
 
-# To protect against upstream libraries which haven't updated
-# for PHP 5.3 where dl() function may not be present...
+// To protect against upstream libraries which haven't updated
+// for PHP 5.3 where dl() function may not be present...
 if (!function_exists('dl')) {
-    function dl($library) {
-        return false;
+    // function_exists() returns false for things in disable_functions,
+    // but they still exist and we'll die if we try to redefine them.
+    //
+    // 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)) {
+        function dl($library) {
+            return false;
+        }
     }
 }