Use call_user_func_array() instead of call_user_func() when need to permit arg by...
authorBenjamin Renard <brenard@easter-eggs.com>
Fri, 28 Apr 2017 08:22:01 +0000 (10:22 +0200)
committerBenjamin Renard <brenard@easter-eggs.com>
Fri, 28 Apr 2017 08:25:22 +0000 (10:25 +0200)
public_html/custom_search_action.php
public_html/includes/class/class.LSattr_ldap_password.php
public_html/includes/class/class.LSattribute.php
public_html/includes/class/class.LSform.php
public_html/includes/class/class.LSformRule_callable.php
public_html/includes/class/class.LSldapObject.php
public_html/includes/class/class.LSrelation.php

index 81b1584..0f4cdd4 100644 (file)
@@ -44,7 +44,7 @@ if(LSsession :: startLSsession()) {
             }
             if (isset($_GET['valid']) || $config['noConfirmation']) {
               LStemplate :: assign('pagetitle',$title);
-              if (call_user_func($config['function'],$LSsearch)) {
+              if (call_user_func_array($config['function'],array(&$LSsearch))) {
                 if ($config['disableOnSuccessMsg']!=true) {
                   if ($config['onSuccessMsgFormat']) {
                     LSsession :: addInfo(getFData(__($config['onSuccessMsgFormat']),$objectname));
index 9d72118..c8b8470 100644 (file)
@@ -190,7 +190,7 @@ class LSattr_ldap_password extends LSattr_ldap {
         return $clearPassword;
         break;
       case 'function':
-        return call_user_func($this -> config['ldap_options']['encode_function'], $this -> attribute -> ldapObject, $clearPassword);
+        return call_user_func_array($this -> config['ldap_options']['encode_function'], array(&$this -> attribute -> ldapObject, $clearPassword));
         break;
     }
     LSerror :: addErrorCode('LSattr_ldap_password_01',$this -> config['ldap_options']['encode']);
index 7ce4dfe..63ad185 100644 (file)
@@ -495,7 +495,7 @@ class LSattribute {
   function generateValue() {
     $value=false;
     if (function_exists($this -> config['generate_function'])) {
-      $value=call_user_func($this -> config['generate_function'],$this -> ldapObject);
+      $value=call_user_func_array($this -> config['generate_function'],array(&$this -> ldapObject));
     }
     else if (isset($this -> config['generate_value_format'])) {
       $value = $this -> ldapObject -> getFData($this -> config['generate_value_format']);
@@ -649,7 +649,7 @@ class LSattribute {
       }
       foreach($funcs as $func) {
         if(function_exists($func)) {
-          if(!call_user_func($func, $this -> ldapObject)) {
+          if(!call_user_func_array($func, array(&$this -> ldapObject))) {
             $return = false;
           }
         }
@@ -666,7 +666,7 @@ class LSattribute {
             $obj = new $e['class']();
             if (method_exists($obj,$e['fct'])) {
               try {
-                call_user_func(array($obj, $e['fct']), $e['params']);
+                call_user_func_array(array($obj, $e['fct']), array(&$e['params']));
               }
               catch(Exception $er) {
                 $return = false;
@@ -686,7 +686,7 @@ class LSattribute {
         else {
           if (function_exists($e['fct'])) {
             try {
-              call_user_func($e['fct'], $e['params']);
+              call_user_func_array($e['fct'], array(&$e['params']));
             }
             catch(Exception $er) {
               LSdebug("Event ".$event." : Erreur durant l'execution de la function ".$e['fct']);
@@ -705,7 +705,7 @@ class LSattribute {
       foreach ($this -> _objectEvents[$event] as $e) {
         if (method_exists($e['obj'],$e['meth'])) {
           try {
-            call_user_func(array($e['obj'], $e['meth']),$e['params']);
+            call_user_func_array(array($e['obj'], $e['meth']),array(&$e['params']));
           }
           catch(Exception $er) {
             $return = false;
index c3d5527..c0921c8 100644 (file)
@@ -362,7 +362,7 @@ class LSform {
         foreach($this -> _rules[$element] as $rule) {
           $ruleType="LSformRule_".$rule['name'];
           LSsession :: loadLSclass($ruleType);
-          if (! call_user_func(array( $ruleType,'validate') , $value, $rule['options'], $this -> getElement($element))) {
+          if (! call_user_func_array(array( $ruleType,'validate') , array($value, $rule['options'], $this -> getElement($element)))) {
             $retval=false;
             $this -> setElementError($this -> elements[$element],$rule['options']['msg']);
           }
index ee92655..5f699c2 100644 (file)
@@ -43,7 +43,7 @@ class LSformRule_callable extends LSformRule {
    */ 
   function validate($value,$option,$formElement) {
     if (is_callable($option['callable'])) {
-      return call_user_func($option['callable'],$value,$option,$formElement);
+      return call_user_func_array($option['callable'],array($value,$option,&$formElement));
     }
     else {
       LSerror :: addErrorCode('LSformRule_callable_01');
index 565ed54..51fd5c7 100644 (file)
@@ -524,7 +524,7 @@ class LSldapObject {
           // Validation par fonction externe
           else if(isset($test['function'])) {
             if (function_exists($test['function'])) {
-              if(!call_user_func($test['function'],$this)) {
+              if(!call_user_func_array($test['function'],array(&$this))) {
                 if ($LSform) $LSform -> setElementError($attr,$msg_error);
                 $retval = false;
               }
@@ -1693,7 +1693,7 @@ class LSldapObject {
       }
       foreach($funcs as $func) {
         if(function_exists($func)) {
-          if(!call_user_func($func,$this)) {
+          if(!call_user_func_array($func,array(&$this))) {
             $return = false;
             LSerror :: addErrorCode('LSldapObject_07',array('func' => $func,'event' => $event));
           }
@@ -1713,7 +1713,7 @@ class LSldapObject {
             $obj = new $e['class']();
             if (method_exists($obj,$e['fct'])) {
               try {
-                call_user_func(array($obj,$e['fct']),$e['param']);
+                call_user_func_array(array($obj,$e['fct']),array(&$e['param']));
               }
               catch(Exception $er) {
                 LSerror :: addErrorCode('LSldapObject_10',array('class' => $e['class'],'meth' => $e['fct'],'event' => $event));
@@ -1733,7 +1733,7 @@ class LSldapObject {
         else {
           if (function_exists($e['fct'])) {
             try {
-              call_user_func($e['fct'],$e['param']);
+              call_user_func_array($e['fct'],array(&$e['param']));
             }
             catch(Exception $er) {
               LSerror :: addErrorCode('LSldapObject_27',array('func' => $e['fct'],'event' => $event));
@@ -1753,7 +1753,7 @@ class LSldapObject {
       foreach ($this -> _objectEvents[$event] as $e) {
         if (method_exists($e['obj'],$e['meth'])) {
           try {
-            call_user_func(array($e['obj'], $e['meth']),$e['param']);
+            call_user_func_array(array($e['obj'], $e['meth']),array(&$e['param']));
           }
           catch(Exception $er) {
             LSerror :: addErrorCode('LSldapObject_29',array('meth' => $e['meth'],'event' => $event));
index 66a3317..e911824 100644 (file)
@@ -46,7 +46,7 @@ class LSrelation {
       $objRel = new $this -> config['LSobject']();
       if (isset($this -> config['list_function'])) {
         if (method_exists($this -> config['LSobject'],$this -> config['list_function'])) {
-          return call_user_func(array($objRel, $this -> config['list_function']), $this -> obj);
+          return call_user_func_array(array($objRel, $this -> config['list_function']), array(&$this -> obj));
         }
         LSerror :: addErrorCode('LSrelations_01',array('function' => $this -> config['list_function'], 'action' =>  _('listing related objects'), 'relation' => $this -> relationName));
         return False;
@@ -69,7 +69,7 @@ class LSrelation {
       $objRel = new $this -> config['LSobject']();
       if (isset($this -> config['getkeyvalue_function'])) {
         if (method_exists($this -> config['LSobject'],$this -> config['getkeyvalue_function'])) {
-          return call_user_func(array($objRel, $this -> config['getkeyvalue_function']), $this -> obj);
+          return call_user_func_array(array($objRel, $this -> config['getkeyvalue_function']), array(&$this -> obj));
         }
         LSerror :: addErrorCode('LSrelations_01',array('function' => $this -> config['getkeyvalue_function'], 'action' =>  _('getting key value'), 'relation' => $this -> relationName));
       }
@@ -115,7 +115,7 @@ class LSrelation {
   public function removeRelationWithObject($objRel) {
     if (isset($this -> config['remove_function'])) {
       if (method_exists($this -> config['LSobject'],$this -> config['remove_function'])) {
-        return call_user_func(array($objRel, $this -> config['remove_function']),$this -> obj);
+        return call_user_func_array(array($objRel, $this -> config['remove_function']),array(&$this -> obj));
       }
       LSerror :: addErrorCode('LSrelations_01',array('function' => $this -> config['remove_function'], 'action' =>  _('deleting'), 'relation' => $this -> relationName));
       return False;
@@ -132,7 +132,7 @@ class LSrelation {
   public function renameRelationWithObject($objRel,$oldKeyValue) {
     if (isset($this -> config['rename_function'])) {
       if (method_exists($objRel,$this -> config['rename_function'])) {
-        return call_user_func(array($objRel, $this -> config['rename_function']), $this -> obj, $oldKeyValue);
+        return call_user_func_array(array($objRel, $this -> config['rename_function']), array(&$this -> obj, $oldKeyValue));
       }
       LSerror :: addErrorCode('LSrelations_01',array('function' => $this -> config['rename_function'], 'action' =>  _('renaming'), 'relation' => $this -> relationName));
       return False;
@@ -151,7 +151,7 @@ class LSrelation {
       $objRel = new $this -> config['LSobject']();
       if (isset($this -> config['update_function'])) {
         if (method_exists($objRel,$this -> config['update_function'])) {
-          return call_user_func(array($objRel, $this -> config['update_function']), $this -> obj, $listDns);
+          return call_user_func_array(array($objRel, $this -> config['update_function']), array(&$this -> obj, $listDns));
         }
         LSerror :: addErrorCode('LSrelations_01',array('function' => $this -> config['update_function'], 'action' =>  _('updating'), 'relation' => $this -> relationName));
       }