aboutsummaryrefslogtreecommitdiff
path: root/net/phpldapadmin/files/patch-lib_functions.php
diff options
context:
space:
mode:
Diffstat (limited to 'net/phpldapadmin/files/patch-lib_functions.php')
-rw-r--r--net/phpldapadmin/files/patch-lib_functions.php483
1 files changed, 0 insertions, 483 deletions
diff --git a/net/phpldapadmin/files/patch-lib_functions.php b/net/phpldapadmin/files/patch-lib_functions.php
deleted file mode 100644
index 91951e3ca8b5..000000000000
--- a/net/phpldapadmin/files/patch-lib_functions.php
+++ /dev/null
@@ -1,483 +0,0 @@
---- lib/functions.php.orig 2021-12-12 02:35:51 UTC
-+++ lib/functions.php
-@@ -161,7 +161,7 @@ function app_error_handler($errno,$errstr,$file,$linen
- }
-
- # Take out extra spaces in error strings.
-- $errstr = preg_replace('/\s+/',' ',$errstr);
-+ $errstr = preg_replace('/\s+/',' ',is_null($errstr)? "":$errstr);
-
- if ($errno == E_NOTICE) {
- $body = '<table class="notice">';
-@@ -214,9 +214,9 @@ function app_version() {
- $CACHE = 'UNKNOWN';
-
- else {
-- $version = rtrim(file_get_contents($version_file));
-+ $version = rtrim((string) file_get_contents($version_file));
-
-- $CACHE = preg_replace('/^RELEASE-([0-9\.]+(-.*)*)$/','$1',$version);
-+ $CACHE = preg_replace('/^RELEASE-([0-9\.]+(-.*)*)$/','$1',is_null($version)? "":$version);
-
- # Check if we are a CVS copy.
- if (preg_match('/^(DEVEL)?$/',$CACHE))
-@@ -525,7 +525,8 @@ function debug_log($msg,$level,$indent) {
-
- # Pull the file/line/method
- if (is_string($args[0]) && preg_match('/.php$/',$args[0])) {
-- $file = preg_replace('/.php$/','',array_shift($args));
-+ $file_a_shift = array_shift($args);
-+ $file = preg_replace('/.php$/','',is_null($file_a_shift? "":$file_a_shift));
- $line = array_shift($args);
- $method = array_shift($args);
-
-@@ -550,7 +551,7 @@ function debug_log($msg,$level,$indent) {
- }
-
- if (preg_match('/%%/',$msg))
-- $msg = preg_replace('/%%/',join('|',$fargs),$msg);
-+ $msg = preg_replace('/%%/',join('|',$fargs),is_null($msg)? "":$msg);
- else
- $msg = vsprintf($msg,array_values($fargs));
-
-@@ -761,11 +762,11 @@ function blowfish_encrypt($data,$secret=null) {
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
- # If our secret is null or blank, get the default.
-- if ($secret === null || ! trim($secret))
-+ if ($secret === null || ! trim((string) $secret))
- $secret = $_SESSION[APPCONFIG]->getValue('session','blowfish') ? $_SESSION[APPCONFIG]->getValue('session','blowfish') : session_id();
-
- # If the secret isnt set, then just return the data.
-- if (! trim($secret))
-+ if (! trim((string) $secret))
- return $data;
-
- if (! empty($data) && function_exists('openssl_encrypt') && in_array('bf-ecb', openssl_get_cipher_methods())) {
-@@ -791,10 +792,10 @@ function blowfish_encrypt($data,$secret=null) {
- $pma_cipher = new Horde_Cipher_blowfish;
- $encrypt = '';
-
-- for ($i=0; $i<strlen($data); $i+=8) {
-+ for ($i=0; $i<strlen((string) $data); $i+=8) {
- $block = substr($data, $i, 8);
-
-- if (strlen($block) < 8)
-+ if (strlen((string) $block) < 8)
- $block = full_str_pad($block,8,"\0", 1);
-
- $encrypt .= $pma_cipher->encryptBlock($block, $secret);
-@@ -822,11 +823,11 @@ function blowfish_decrypt($encdata,$secret=null) {
- return $CACHE[$encdata];
-
- # If our secret is null or blank, get the default.
-- if ($secret === null || ! trim($secret))
-+ if ($secret === null || ! trim((string) $secret))
- $secret = $_SESSION[APPCONFIG]->getValue('session','blowfish') ? $_SESSION[APPCONFIG]->getValue('session','blowfish') : session_id();
-
- # If the secret isnt set, then just return the data.
-- if (! trim($secret))
-+ if (! trim((string) $secret))
- return $encdata;
-
- if (! empty($encdata) && function_exists('openssl_encrypt') && in_array('bf-ecb', openssl_get_cipher_methods())) {
-@@ -838,7 +839,7 @@ function blowfish_decrypt($encdata,$secret=null) {
- $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,'');
- $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);
- mcrypt_generic_init($td,substr($secret,0,mcrypt_enc_get_key_size($td)),$iv);
-- $decrypted_data = trim(mdecrypt_generic($td,base64_decode($encdata)));
-+ $decrypted_data = trim((string) mdecrypt_generic($td,base64_decode($encdata)));
- mcrypt_generic_deinit($td);
-
- return $decrypted_data;
-@@ -853,11 +854,11 @@ function blowfish_decrypt($encdata,$secret=null) {
- $decrypt = '';
- $data = base64_decode($encdata);
-
-- for ($i=0; $i<strlen($data); $i+=8)
-+ for ($i=0; $i<strlen((string) $data); $i+=8)
- $decrypt .= $pma_cipher->decryptBlock(substr($data, $i, 8), $secret);
-
- // Strip off our \0's that were added.
-- $return = preg_replace("/\\0*$/",'',$decrypt);
-+ $return = preg_replace("/\\0*$/",'',is_null($decrypt)? "":$decrypt);
- $CACHE[$encdata] = $return;
- return $return;
- }
-@@ -876,7 +877,7 @@ function full_str_pad($input,$pad_length,$pad_string='
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
- $str = '';
-- $length = $pad_length - strlen($input);
-+ $length = $pad_length - strlen((string) $input);
-
- if ($length > 0) { // str_repeat doesn't like negatives
- if ($pad_type == STR_PAD_RIGHT) { // STR_PAD_RIGHT == 1
-@@ -928,7 +929,7 @@ function get_cached_item($index,$item,$subitem='null')
- *
- * Returns true on success of false on failure.
- */
--function set_cached_item($index,$item,$subitem='null',$data) {
-+function set_cached_item($index,$data,$item,$subitem='null') {
- if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
-@@ -1090,7 +1091,7 @@ function masort(&$data,$sortby,$rev=0) {
- $code .= " \$a = array_change_key_case(\$a);\n";
- $code .= " \$b = array_change_key_case(\$b);\n";
-
-- $key = strtolower($key);
-+ $key = strtolower((string) $key);
-
- $code .= " if ((! isset(\$a['$key'])) && isset(\$b['$key'])) return 1;\n";
- $code .= " if (isset(\$a['$key']) && (! isset(\$b['$key']))) return -1;\n";
-@@ -1248,7 +1249,7 @@ function is_dn_string($str) {
- $left = $sub_parts[0];
- $right = $sub_parts[1];
-
-- if ( ! strlen(trim($left)) || ! strlen(trim($right)))
-+ if ( ! strlen((string) trim((string) $left)) || ! strlen((string) trim((string) $right)))
- return false;
-
- if (strpos($left,'#') !== false)
-@@ -1343,7 +1344,7 @@ function pla_compare_dns($dn1,$dn2) {
- $dn2 = implode('+',$dn2);
-
- # If they are obviously the same, return immediately
-- if (! strcasecmp($dn1,$dn2))
-+ if (! strcasecmp((string) $dn1,(string) $dn2))
- return 0;
-
- $dn1_parts = pla_explode_dn(pla_reverse_dn($dn1));
-@@ -1364,15 +1365,15 @@ function pla_compare_dns($dn1,$dn2) {
- $dn1_sub_parts = explode('=',$dn1_part,2);
- $dn2_sub_parts = explode('=',$dn2_part,2);
-
-- $dn1_sub_part_attr = trim($dn1_sub_parts[0]);
-- $dn2_sub_part_attr = trim($dn2_sub_parts[0]);
-+ $dn1_sub_part_attr = trim((string) $dn1_sub_parts[0]);
-+ $dn2_sub_part_attr = trim((string) $dn2_sub_parts[0]);
-
-- if (0 != ($cmp = strcasecmp($dn1_sub_part_attr,$dn2_sub_part_attr)))
-+ if (0 != ((string) $cmp = strcasecmp((string) $dn1_sub_part_attr,(string) $dn2_sub_part_attr)))
- return $cmp;
-
-- $dn1_sub_part_val = trim($dn1_sub_parts[1]);
-- $dn2_sub_part_val = trim($dn2_sub_parts[1]);
-- if (0 != ($cmp = strcasecmp($dn1_sub_part_val,$dn2_sub_part_val)))
-+ $dn1_sub_part_val = trim((string) $dn1_sub_parts[1]);
-+ $dn2_sub_part_val = trim((string) $dn2_sub_parts[1]);
-+ if (0 != ((string) $cmp = strcasecmp((string) $dn1_sub_part_val,(string) $dn2_sub_part_val)))
- return $cmp;
- }
-
-@@ -1430,7 +1431,7 @@ function get_next_number($base,$attr,$increment=false,
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
- $server = $_SESSION[APPCONFIG]->getServer(get_request('server_id','REQUEST'));
-- $attr = strtolower($attr);
-+ $attr = strtolower((string) $attr);
- $query = array();
-
- if (! $server->getValue('auto_number','enable')) {
-@@ -1457,7 +1458,7 @@ function get_next_number($base,$attr,$increment=false,
- if (! $base) {
- $query['base'] = $server->getValue('auto_number','search_base');
-
-- if (! trim($query['base'])) {
-+ if (! trim((string) $query['base'])) {
- system_message(array(
- 'title'=>_('No AUTO_NUMBER search_base configured for this server'),
- 'body'=>_('A call was made to get_next_number(), however, the base to search is empty.'),
-@@ -1628,7 +1629,7 @@ function get_icon($server_id,$dn,$object_classes=array
- $object_classes = $server->getDNAttrValue($dn,'objectClass');
-
- foreach ($object_classes as $index => $value)
-- $object_classes[$index] = strtolower($value);
-+ $object_classes[$index] = strtolower((string) $value);
-
- $rdn = get_rdn($dn);
- $rdn_parts = explode('=',$rdn,2);
-@@ -1638,7 +1639,7 @@ function get_icon($server_id,$dn,$object_classes=array
-
- # Return icon filename based upon objectClass value
- if (in_array('sambaaccount',$object_classes) &&
-- '$' == $rdn[ strlen($rdn) - 1 ])
-+ '$' == $rdn[ strlen((string) $rdn) - 1 ])
- return 'nt_machine.png';
-
- if (in_array('sambaaccount',$object_classes))
-@@ -1688,9 +1689,9 @@ function get_icon($server_id,$dn,$object_classes=array
- $cval = explode('=',$tmp[0],2);
- $cval = isset($cval[1]) ? $cval[1] : false;
- if ($cval && false === strpos($cval,'..') &&
-- file_exists(realpath(sprintf('%s/../countries/%s.png',IMGDIR,strtolower($cval)))))
-+ file_exists(realpath(sprintf('%s/../countries/%s.png',IMGDIR,strtolower((string) $cval)))))
-
-- return sprintf('../countries/%s.png',strtolower($cval));
-+ return sprintf('../countries/%s.png',strtolower((string) $cval));
-
- else
- return 'country.png';
-@@ -1777,13 +1778,13 @@ function get_icon($server_id,$dn,$object_classes=array
- return 'hard-drive.png';
-
- elseif (strpos($rdn_value,'ipsec') === 0 ||
-- strcasecmp($rdn_value,'IP Security') == 0||
-- strcasecmp($rdn_value,'MSRADIUSPRIVKEY Secret') == 0 ||
-+ strcasecmp((string) $rdn_value,'IP Security') == 0||
-+ strcasecmp((string) $rdn_value,'MSRADIUSPRIVKEY Secret') == 0 ||
- strpos($rdn_value,'BCKUPKEY_') === 0)
-
- return 'lock.png';
-
-- elseif (strcasecmp($rdn_value,'MicrosoftDNS') == 0)
-+ elseif (strcasecmp((string) $rdn_value,'MicrosoftDNS') == 0)
- return 'ldap-dc.png';
-
- # Oh well, I don't know what it is. Use a generic icon.
-@@ -1802,7 +1803,7 @@ function expand_dn_with_base($base,$sub_dn) {
- if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
-- $empty_str = (is_null($sub_dn) || (($len=strlen(trim($sub_dn))) == 0));
-+ $empty_str = (is_null($sub_dn) || (($len=strlen((string) trim((string) $sub_dn))) == 0));
-
- if ($empty_str)
- return $base;
-@@ -1927,7 +1928,7 @@ function pla_verbose_error($key) {
- $hex_code = isset($entry[1]) ? $entry[1] : null;
- $title = isset($entry[2]) ? $entry[2] : null;
- $desc = isset($entry[3]) ? $entry[3] : null;
-- $desc = preg_replace('/\s+/',' ',$desc);
-+ $desc = preg_replace('/\s+/',' ',is_null($desc)? "":$desc);
- $CACHE[$hex_code] = array('title'=>$title,'desc'=>$desc);
- }
- }
-@@ -1984,7 +1985,7 @@ function support_oid_to_text($key) {
- $CACHE[$oid_id]['title'] = isset($entry[4]) ? $entry[4] : null;
- $CACHE[$oid_id]['ref'] = isset($entry[6]) ? $entry[6] : null;
- $desc = isset($entry[8]) ? $entry[8] : sprintf('<acronym title="%s">%s</acronym>',$unknown['desc'],$unknown['title']);
-- $CACHE[$oid_id]['desc'] = preg_replace('/\s+/',' ',$desc);
-+ $CACHE[$oid_id]['desc'] = preg_replace('/\s+/',' ',is_null($desc)? "":$desc);
- }
- }
- }
-@@ -2032,8 +2033,8 @@ function ldap_error_msg($msg,$errnum) {
- *
- * Usage Examples:
- * <code>
-- * draw_jpeg_photo(0,'cn=Bob,ou=People,dc=example,dc=com',"jpegPhoto",0,true,array('img_opts'=>"border: 1px; width: 150px"));
-- * draw_jpeg_photo(1,'cn=Fred,ou=People,dc=example,dc=com',null,1);
-+ * draw_jpeg_photo(0,'cn=Bob,ou=People,dc=example,dc=com',0,"jpegPhoto",true,array('img_opts'=>"border: 1px; width: 150px"));
-+ * draw_jpeg_photo(1,'cn=Fred,ou=People,dc=example,dc=com',1,null);
- * </code>
- *
- * @param object The Server to get the image from.
-@@ -2046,7 +2047,7 @@ function ldap_error_msg($msg,$errnum) {
- * @param array Specifies optional image and CSS style attributes for the table tag. Supported keys are
- * fixed_width, fixed_height, img_opts.
- */
--function draw_jpeg_photo($server,$dn,$attr_name='jpegphoto',$index,$draw_delete_buttons=false,$options=array()) {
-+function draw_jpeg_photo($server,$dn,$index,$attr_name='jpegphoto',$draw_delete_buttons=false,$options=array()) {
- if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
-@@ -2164,7 +2165,7 @@ function pla_password_hash($password_clear,$enc_type)
- if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
-- $enc_type = strtolower($enc_type);
-+ $enc_type = strtolower((string) $enc_type);
-
- switch($enc_type) {
- case 'blowfish':
-@@ -2335,7 +2336,7 @@ function password_check($cryptedpassword,$plainpasswor
-
- if (preg_match('/{([^}]+)}(.*)/',$cryptedpassword,$matches)) {
- $cryptedpassword = $matches[2];
-- $cypher = strtolower($matches[1]);
-+ $cypher = strtolower((string) $matches[1]);
-
- } else {
- $cypher = null;
-@@ -2389,7 +2390,7 @@ function password_check($cryptedpassword,$plainpasswor
-
- # SHA crypted passwords
- case 'sha':
-- if (strcasecmp(pla_password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0)
-+ if (strcasecmp(pla_password_hash((string) $plainpassword,'sha'),'{SHA}'.(string) $cryptedpassword) == 0)
- return true;
- else
- return false;
-@@ -2398,7 +2399,7 @@ function password_check($cryptedpassword,$plainpasswor
-
- # MD5 crypted passwords
- case 'md5':
-- if( strcasecmp(pla_password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0)
-+ if( strcasecmp(pla_password_hash((string) $plainpassword,'md5'),'{MD5}'.(string) $cryptedpassword) == 0)
- return true;
- else
- return false;
-@@ -2463,7 +2464,7 @@ function password_check($cryptedpassword,$plainpasswor
-
- # SHA256 crypted passwords
- case 'sha256':
-- if (strcasecmp(pla_password_hash($plainpassword,'sha256'),'{SHA256}'.$cryptedpassword) == 0)
-+ if (strcasecmp(pla_password_hash((string) $plainpassword,'sha256'),'{SHA256}'.(string) $cryptedpassword) == 0)
- return true;
- else
- return false;
-@@ -2485,7 +2486,7 @@ function password_check($cryptedpassword,$plainpasswor
-
- # SHA384 crypted passwords
- case 'sha384':
-- if (strcasecmp(pla_password_hash($plainpassword,'sha384'),'{SHA384}'.$cryptedpassword) == 0)
-+ if (strcasecmp(pla_password_hash((string) $plainpassword,'sha384'),'{SHA384}'.(string) $cryptedpassword) == 0)
- return true;
- else
- return false;
-@@ -2507,7 +2508,7 @@ function password_check($cryptedpassword,$plainpasswor
-
- # SHA512 crypted passwords
- case 'sha512':
-- if (strcasecmp(pla_password_hash($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0)
-+ if (strcasecmp(pla_password_hash((string) $plainpassword,'sha512'),'{SHA512}'.(string) $cryptedpassword) == 0)
- return true;
- else
- return false;
-@@ -2554,12 +2555,12 @@ function get_enc_type($user_password) {
- $enc_type = null;
-
- if (preg_match('/{([^}]+)}/',$user_password,$enc_type))
-- $enc_type = strtolower($enc_type[1]);
-+ $enc_type = strtolower((string) $enc_type[1]);
- else
- return null;
-
- # Handle crypt types
-- if (strcasecmp($enc_type,'crypt') == 0) {
-+ if (strcasecmp((string) $enc_type,'crypt') == 0) {
-
- # No need to check for standard crypt, because enc_type is already equal to 'crypt'.
- if (preg_match('/{[^}]+}\\$1\\$+/',$user_password))
-@@ -2698,9 +2699,9 @@ function dn_escape($dn) {
-
- # Check if the RDN has a comma and escape it.
- while (preg_match('/([^\\\\]),(\s*[^=]*\s*),/',$dn))
-- $dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*),/','$1\\\\2C$2,',$dn);
-+ $dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*),/','$1\\\\2C$2,',is_null($dn)? "":$dn);
-
-- $dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*)([^,])$/','$1\\\\2C$2$3',$dn);
-+ $dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*)([^,])$/','$1\\\\2C$2$3',is_null($dn)? "":$dn);
-
- if (DEBUG_ENABLED)
- debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$dn);
-@@ -2872,17 +2873,17 @@ function sortAttrs($a,$b) {
- $b_key = array_search($b->getName(),$attrs_display_order);
-
- if ((! $a_key) && ($a_key !== 0))
-- if ((! $a_key = array_search(strtolower($a->getFriendlyName()),$attrs_display_order)) && ($a_key !== 0))
-+ if ((! $a_key = array_search(strtolower((string) $a->getFriendlyName()),$attrs_display_order)) && ($a_key !== 0))
- $a_key = count($attrs_display_order)+1;
-
- if ((! $b_key) && ($b_key !== 0))
-- if ((! $b_key = array_search(strtolower($b->getFriendlyName()),$attrs_display_order)) && ($b_key !== 0))
-+ if ((! $b_key = array_search(strtolower((string) $b->getFriendlyName()),$attrs_display_order)) && ($b_key !== 0))
- $b_key = count($attrs_display_order)+1;
-
- # Case where neither $a, nor $b are in $attrs_display_order, $a_key = $b_key = one greater than num elements.
- # So we sort them alphabetically
- if ($a_key === $b_key)
-- return strcasecmp($a->getFriendlyName(),$b->getFriendlyName());
-+ return strcasecmp((string) $a->getFriendlyName(),(string) $b->getFriendlyName());
-
- # Case where at least one attribute or its friendly name is in $attrs_display_order
- # return -1 if $a before $b in $attrs_display_order
-@@ -2904,7 +2905,7 @@ function arrayLower($array) {
-
- $newarray = array();
- foreach ($array as $key => $value)
-- $newarray[$key] = strtolower($value);
-+ $newarray[$key] = strtolower((string) $value);
-
- return $newarray;
- }
-@@ -2929,7 +2930,7 @@ function in_array_ignore_case($needle,$haystack) {
- $return = false;
-
- foreach ($haystack as $element) {
-- if (is_string($element) && (strcasecmp($needle,$element) == 0)) {
-+ if (is_string((string) $element) && (strcasecmp((string) $needle,(string) $element) == 0)) {
- $return = true;
- break;
- }
-@@ -2961,13 +2962,13 @@ function draw_formatted_dn($server,$entry) {
- debug_log('The tokens are (%s)',1,0,__FILE__,__LINE__,__METHOD__,$tokens);
-
- foreach ($tokens as $token) {
-- if (strcasecmp($token,'%dn') == 0)
-+ if (strcasecmp((string) $token,'%dn') == 0)
- $format = str_replace($token,pretty_print_dn($dn),$format);
-
-- elseif (strcasecmp($token,'%rdn') == 0)
-+ elseif (strcasecmp((string) $token,'%rdn') == 0)
- $format = str_replace($token,pretty_print_dn($entry->getRDN()),$format);
-
-- elseif (strcasecmp($token,'%rdnvalue') == 0) {
-+ elseif (strcasecmp((string) $token,'%rdnvalue') == 0) {
- $rdn = get_rdn($dn,0,true);
- $rdn_value = explode('=',$rdn,2);
- $rdn_value = $rdn_value[1];
-@@ -3046,7 +3047,7 @@ function littleEndian($hex) {
-
- $result = '';
-
-- for ($x=strlen($hex)-2;$x>= 0;$x=$x-2)
-+ for ($x=strlen((string) $hex)-2;$x>= 0;$x=$x-2)
- $result .= substr($hex,$x,2);
-
- return $result;
-@@ -3088,7 +3089,7 @@ function return_ldap_hash($base,$filter,$key,$attrs,$s
- debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
-
- $server = $_SESSION[APPCONFIG]->getServer(get_request('server_id','REQUEST'));
-- $key = strtolower($key);
-+ $key = strtolower((string) $key);
-
- $query = array();
- $query['base'] = $base;
-@@ -3103,21 +3104,21 @@ function return_ldap_hash($base,$filter,$key,$attrs,$s
- if (is_array($values[$key]))
- foreach ($values[$key] as $i => $k)
- foreach ($attrs as $attr) {
-- $lattr = strtolower($attr);
-+ $lattr = strtolower((string) $attr);
- if (isset($values[$lattr])) {
- $v = '';
-
- if (is_array($values[$lattr]) && isset($values[$lattr][$i]))
- $v = $values[$lattr][$i];
-
-- if (is_string($v) && (strlen($v) > 0))
-+ if (is_string($v) && (strlen((string) $v) > 0))
- $results[$k][$attr] = $v;
- }
- }
-
- else
- foreach ($attrs as $attr) {
-- $lattr = strtolower($attr);
-+ $lattr = strtolower((string) $attr);
- if (isset($values[$lattr]))
- $results[$values[$key]][$attr] = $values[$lattr];
- }
-@@ -3263,7 +3264,7 @@ function random_junk() {
- * @return string
- */
- function htmlid($sid,$dn) {
-- return sprintf('SID%s:%s',$sid,preg_replace('/[\ =,]/','_',$dn));
-+ return sprintf('SID%s:%s',$sid,preg_replace('/[\ =,]/','_',is_null($dn)? "":$dn));
- }
-
- /**