Edit

IABSD.fr/ports/www/phpldapadmin/patches/patch-lib_functions_php

Branch :

  • Show log

    Commit

  • Author : robert
    Date : 2015-09-12 08:09:05
    Hash : f11f70ec
    Message : unbreak phpldapadmin with php-5.{5,6}

  • www/phpldapadmin/patches/patch-lib_functions_php
  • $OpenBSD: patch-lib_functions_php,v 1.3 2015/09/12 08:09:05 robert Exp $
    --- lib/functions.php.orig	Mon Oct  1 08:54:14 2012
    +++ lib/functions.php	Sat Sep 12 09:46:59 2015
    @@ -2127,7 +2127,7 @@ function password_types() {
      *        crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, sha512, or clear.
      * @return string The hashed password.
      */
    -function password_hash($password_clear,$enc_type) {
    +function password_hash_custom($password_clear,$enc_type) {
     	if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
     		debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
     
    @@ -2318,7 +2318,7 @@ function password_check($cryptedpassword,$plainpasswor
     
     		# SHA crypted passwords
     		case 'sha':
    -			if (strcasecmp(password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0)
    +			if (strcasecmp(password_hash_custom($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0)
     				return true;
     			else
     				return false;
    @@ -2327,7 +2327,7 @@ function password_check($cryptedpassword,$plainpasswor
     
     		# MD5 crypted passwords
     		case 'md5':
    -			if( strcasecmp(password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0)
    +			if( strcasecmp(password_hash_custom($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0)
     				return true;
     			else
     				return false;
    @@ -2392,7 +2392,7 @@ function password_check($cryptedpassword,$plainpasswor
     
     		# SHA512 crypted passwords
     		case 'sha512':
    -			if (strcasecmp(password_hash($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0)
    +			if (strcasecmp(password_hash_custom($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0)
     				return true;
     			else
     				return false;
    @@ -2564,13 +2564,24 @@ function dn_unescape($dn) {
     	if (is_array($dn)) {
     		$a = array();
     
    -		foreach ($dn as $key => $rdn)
    -			$a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
    +		foreach ($dn as $key => $rdn) {
    +			$a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
    +				function ($m) {
    +					return ''.chr(hexdec('\\1')).'';
    +				},
    +				$rdn
    +			);
    +		}
     
     		return $a;
     
     	} else {
    -		return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
    +		 return  preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
    +			 function ($m) {
    +				return ''.chr(hexdec('\\1')).'';
    +			},
    +			$dn
    +		);
     	}
     }