diff options
author | Krzysztof <ports@bsdserwis.com> | 2022-11-27 21:17:33 +0100 |
---|---|---|
committer | Ronald Klop <ronald@FreeBSD.org> | 2022-12-01 10:53:34 +0100 |
commit | fee2b338d2af883ca4dd75a7d285f65b284fb73b (patch) | |
tree | 7ac4ed5fd0e3d09bbab43b2eeb736a36758cdd56 /net/phpldapadmin/files/patch-lib_schema__functions.php | |
parent | editors/bless: resurrect^Wreadd previously expired port (diff) |
net/phpldapadmin: fix support for php81+
PR: 266678
Reported by: Gerard Seibert
Approved by: rene (mentor)
Differential Revision: https://reviews.freebsd.org/D37513
Diffstat (limited to 'net/phpldapadmin/files/patch-lib_schema__functions.php')
-rw-r--r-- | net/phpldapadmin/files/patch-lib_schema__functions.php | 365 |
1 files changed, 365 insertions, 0 deletions
diff --git a/net/phpldapadmin/files/patch-lib_schema__functions.php b/net/phpldapadmin/files/patch-lib_schema__functions.php new file mode 100644 index 000000000000..89c62b83be3b --- /dev/null +++ b/net/phpldapadmin/files/patch-lib_schema__functions.php @@ -0,0 +1,365 @@ +--- lib/schema_functions.php.orig 2021-12-12 02:35:51 UTC ++++ lib/schema_functions.php +@@ -74,7 +74,7 @@ abstract class SchemaItem { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name); + +- return $lower ? strtolower($this->name) : $this->name; ++ return $lower ? strtolower((string) $this->name) : $this->name; + } + } + +@@ -125,7 +125,7 @@ class ObjectClass extends SchemaItem { + if ($strings[$i+1]!='(') { + do { + $i++; +- if (strlen($this->name) == 0) ++ if (strlen((string) $this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -136,7 +136,7 @@ class ObjectClass extends SchemaItem { + $i++; + do { + $i++; +- if (strlen($this->name) == 0) ++ if (strlen((string) $this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -148,8 +148,8 @@ class ObjectClass extends SchemaItem { + } while (! preg_match('/\)+\)?/',$strings[$i])); + } + +- $this->name = preg_replace('/^\'/','',$this->name); +- $this->name = preg_replace('/\'$/','',$this->name); ++ $this->name = preg_replace('/^\'/','',is_null($this->name)? "":$this->name); ++ $this->name = preg_replace('/\'$/','',is_null($this->name)? "":$this->name); + + if (DEBUG_ENABLED) + debug_log('Case NAME returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->name); +@@ -158,7 +158,7 @@ class ObjectClass extends SchemaItem { + case 'DESC': + do { + $i++; +- if (strlen($this->description) == 0) ++ if (strlen((string) $this->description) == 0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; +@@ -179,14 +179,14 @@ class ObjectClass extends SchemaItem { + case 'SUP': + if ($strings[$i+1] != '(') { + $i++; +- array_push($this->sup_classes,preg_replace("/'/",'',$strings[$i])); ++ array_push($this->sup_classes,preg_replace("/'/",'',is_null($strings[$i])? "":$strings[$i])); + + } else { + $i++; + do { + $i++; + if ($strings[$i] != '$') +- array_push($this->sup_classes,preg_replace("/'/",'',$strings[$i])); ++ array_push($this->sup_classes,preg_replace("/'/",'',is_null($strings[$i])? "":$strings[$i])); + + } while (! preg_match('/\)+\)?/',$strings[$i+1])); + } +@@ -267,8 +267,8 @@ class ObjectClass extends SchemaItem { + } + } + +- $this->description = preg_replace("/^\'/",'',$this->description); +- $this->description = preg_replace("/\'$/",'',$this->description); ++ $this->description = preg_replace("/^\'/",'',is_null($this->description)? "":$this->description); ++ $this->description = preg_replace("/\'$/",'',is_null($this->description)? "":$this->description); + + if (DEBUG_ENABLED) + debug_log('Returning () - NAME (%s), DESCRIPTION (%s), MUST (%s), MAY (%s), FORCE MAY (%s)',9,0,__FILE__,__LINE__,__METHOD__, +@@ -293,13 +293,13 @@ class ObjectClass extends SchemaItem { + if (! preg_match('/^\(/',$string)) { + # A bareword only - can be terminated by a ) if the last item + if (preg_match('/\)+$/',$string)) +- $string = preg_replace('/\)+$/','',$string); ++ $string = preg_replace('/\)+$/','',is_null($string)? "":$string); + + array_push($attrs,$string); + + } elseif (preg_match('/^\(.*\)$/',$string)) { +- $string = preg_replace('/^\(/','',$string); +- $string = preg_replace('/\)+$/','',$string); ++ $string = preg_replace('/^\(/','',is_null($string)? "":$string); ++ $string = preg_replace('/\)+$/','',is_null($string)? "":$string); + array_push($attrs,$string); + + } else { +@@ -308,7 +308,7 @@ class ObjectClass extends SchemaItem { + $i++; + + } elseif (preg_match('/^\(./',$string)) { +- $string = preg_replace('/^\(/','',$string); ++ $string = preg_replace('/^\(/','',is_null($string)? "":$string); + array_push($attrs,$string); + $i++; + } +@@ -323,7 +323,7 @@ class ObjectClass extends SchemaItem { + } + + if (preg_match('/\)$/',$string)) +- $string = preg_replace('/\)+$/','',$string); ++ $string = preg_replace('/\)+$/','',is_null($string)? "":$string); + else + $i++; + +@@ -519,10 +519,10 @@ class ObjectClass extends SchemaItem { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + +- $name = trim($name); ++ $name = trim((string) $name); + + foreach ($this->children_objectclasses as $existing_objectclass) +- if (strcasecmp($name,$existing_objectclass) == 0) ++ if (strcasecmp((string) $name,(string) $existing_objectclass) == 0) + return false; + + array_push($this->children_objectclasses,$name); +@@ -683,7 +683,7 @@ class ObjectClass_ObjectClassAttribute { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name); + +- return $lower ? strtolower($this->name) : $this->name; ++ return $lower ? strtolower((string) $this->name) : $this->name; + } + + # Gets the name of the ObjectClass which originally specified this attribute. +@@ -754,7 +754,7 @@ class AttributeType extends SchemaItem { + if ($strings[$i+1] != '(' && ! preg_match('/^\(/',$strings[$i+1])) { + do { + $i++; +- if (strlen($this->name)==0) ++ if (strlen((string) $this->name)==0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -769,11 +769,11 @@ class AttributeType extends SchemaItem { + do { + # In case we came here becaues of a (' + if (preg_match('/^\(/',$strings[$i])) +- $strings[$i] = preg_replace('/^\(/','',$strings[$i]); ++ $strings[$i] = preg_replace('/^\(/','',is_null($strings[$i])? "":$strings[$i]); + else + $i++; + +- if (strlen($this->name) == 0) ++ if (strlen((string) $this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -783,8 +783,8 @@ class AttributeType extends SchemaItem { + # Add alias names for this attribute + while ($strings[++$i] != ')') { + $alias = $strings[$i]; +- $alias = preg_replace("/^\'/",'',$alias); +- $alias = preg_replace("/\'$/",'',$alias); ++ $alias = preg_replace("/^\'/",'',is_null($alias)? "":$alias); ++ $alias = preg_replace("/\'$/",'',is_null($alias)? "":$alias); + $this->addAlias($alias); + } + } +@@ -796,7 +796,7 @@ class AttributeType extends SchemaItem { + case 'DESC': + do { + $i++; +- if (strlen($this->description)==0) ++ if (strlen((string) $this->description)==0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; +@@ -848,7 +848,7 @@ class AttributeType extends SchemaItem { + case 'SYNTAX': + $i++; + $this->syntax = $strings[$i]; +- $this->syntax_oid = preg_replace('/{\d+}$/','',$this->syntax); ++ $this->syntax_oid = preg_replace('/{\d+}$/','',is_null($this->syntax)? "":$this->syntax); + + # Does this SYNTAX string specify a max length (ie, 1.2.3.4{16}) + if (preg_match('/{(\d+)}$/',$this->syntax,$this->max_length)) +@@ -906,16 +906,16 @@ class AttributeType extends SchemaItem { + } + } + +- $this->name = preg_replace("/^\'/",'',$this->name); +- $this->name = preg_replace("/\'$/",'',$this->name); +- $this->description = preg_replace("/^\'/",'',$this->description); +- $this->description = preg_replace("/\'$/",'',$this->description); +- $this->syntax = preg_replace("/^\'/",'',$this->syntax); +- $this->syntax = preg_replace("/\'$/",'',$this->syntax); +- $this->syntax_oid = preg_replace("/^\'/",'',$this->syntax_oid); +- $this->syntax_oid = preg_replace("/\'$/",'',$this->syntax_oid); +- $this->sup_attribute = preg_replace("/^\'/",'',$this->sup_attribute); +- $this->sup_attribute = preg_replace("/\'$/",'',$this->sup_attribute); ++ $this->name = preg_replace("/^\'/",'',is_null($this->name)? "":$this->name); ++ $this->name = preg_replace("/\'$/",'',is_null($this->name)? "":$this->name); ++ $this->description = preg_replace("/^\'/",'',is_null($this->description)? "":$this->description); ++ $this->description = preg_replace("/\'$/",'',is_null($this->description)? "":$this->description); ++ $this->syntax = preg_replace("/^\'/",'',is_null($this->syntax)? "":$this->syntax); ++ $this->syntax = preg_replace("/\'$/",'',is_null($this->syntax)? "":$this->syntax); ++ $this->syntax_oid = preg_replace("/^\'/",'',is_null($this->syntax_oid)? "":$this->syntax_oid); ++ $this->syntax_oid = preg_replace("/\'$/",'',is_null($this->syntax_oid)? "":$this->syntax_oid); ++ $this->sup_attribute = preg_replace("/^\'/",'',is_null($this->sup_attribute)? "":$this->sup_attribute); ++ $this->sup_attribute = preg_replace("/\'$/",'',is_null($this->sup_attribute)? "":$this->sup_attribute); + + if (DEBUG_ENABLED) + debug_log('Returning ()',9,0,__FILE__,__LINE__,__METHOD__); +@@ -1006,7 +1006,7 @@ class AttributeType extends SchemaItem { + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->aliases as $alias_attr_name) +- if (strcasecmp($alias_attr_name,$attr_name) == 0) ++ if (strcasecmp((string) $alias_attr_name,(string) $attr_name) == 0) + return true; + + return false; +@@ -1125,7 +1125,7 @@ class AttributeType extends SchemaItem { + + foreach ($this->aliases as $i => $alias_name) { + +- if (strcasecmp($alias_name,$remove_alias_name) == 0) { ++ if (strcasecmp((string) $alias_name,(string) $remove_alias_name) == 0) { + unset($this->aliases[$i]); + + $this->aliases = array_values($this->aliases); +@@ -1209,7 +1209,7 @@ class AttributeType extends SchemaItem { + if (DEBUG_ENABLED) + debug_log('Checking (%s) with (%s)',8,0,__FILE__,__LINE__,__METHOD__,$used_in_object_class,$name); + +- if (strcasecmp($used_in_object_class,$name) == 0) ++ if (strcasecmp((string) $used_in_object_class,(string) $name) == 0) + return false; + } + +@@ -1240,7 +1240,7 @@ class AttributeType extends SchemaItem { + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->required_by_object_classes as $required_by_object_class) +- if (strcasecmp($required_by_object_class,$name) == 0) ++ if (strcasecmp((string) $required_by_object_class,(string) $name) == 0) + return false; + + array_push($this->required_by_object_classes,$name); +@@ -1301,7 +1301,7 @@ class Syntax extends SchemaItem { + case 'DESC': + do { + $i++; +- if (strlen($this->description) == 0) ++ if (strlen((string) $this->description) == 0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; +@@ -1314,8 +1314,8 @@ class Syntax extends SchemaItem { + } + } + +- $this->description = preg_replace("/^\'/",'',$this->description); +- $this->description = preg_replace("/\'$/",'',$this->description); ++ $this->description = preg_replace("/^\'/",'',is_null($this->description)? "":$this->description); ++ $this->description = preg_replace("/\'$/",'',is_null($this->description)? "":$this->description); + } + } + +@@ -1349,7 +1349,7 @@ class MatchingRule extends SchemaItem { + if ($strings[$i+1] != '(') { + do { + $i++; +- if (strlen($this->name) == 0) ++ if (strlen((string) $this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -1359,7 +1359,7 @@ class MatchingRule extends SchemaItem { + $i++; + do { + $i++; +- if (strlen($this->name) == 0) ++ if (strlen((string) $this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -1370,14 +1370,14 @@ class MatchingRule extends SchemaItem { + } while (! preg_match('/\)+\)?/',$strings[$i])); + } + +- $this->name = preg_replace("/^\'/",'',$this->name); +- $this->name = preg_replace("/\'$/",'',$this->name); ++ $this->name = preg_replace("/^\'/",'',is_null($this->name)? "":$this->name); ++ $this->name = preg_replace("/\'$/",'',is_null($this->name)? "":$this->name); + break; + + case 'DESC': + do { + $i++; +- if (strlen($this->description)==0) ++ if (strlen((string) $this->description)==0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; +@@ -1397,8 +1397,8 @@ class MatchingRule extends SchemaItem { + $this->setOID($strings[$i]); + } + } +- $this->description = preg_replace("/^\'/",'',$this->description); +- $this->description = preg_replace("/\'$/",'',$this->description); ++ $this->description = preg_replace("/^\'/",'',is_null($this->description)? "":$this->description); ++ $this->description = preg_replace("/\'$/",'',is_null($this->description)? "":$this->description); + } + + /** +@@ -1423,7 +1423,7 @@ class MatchingRule extends SchemaItem { + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->used_by_attrs as $attr_name) +- if (strcasecmp($attr_name,$attr) == 0) ++ if (strcasecmp((string) $attr_name,(string) $attr) == 0) + return false; + + array_push($this->used_by_attrs,$attr); +@@ -1469,7 +1469,7 @@ class MatchingRuleUse extends SchemaItem { + if ($strings[$i+1] != '(') { + do { + $i++; +- if (! isset($this->name) || strlen($this->name) == 0) ++ if (! isset($this->name) || strlen((string) $this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -1480,7 +1480,7 @@ class MatchingRuleUse extends SchemaItem { + $i++; + do { + $i++; +- if (strlen($this->name) == 0) ++ if (strlen((string) $this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; +@@ -1491,8 +1491,8 @@ class MatchingRuleUse extends SchemaItem { + } while (! preg_match('/\)+\)?/',$strings[$i])); + } + +- $this->name = preg_replace("/^\'/",'',$this->name); +- $this->name = preg_replace("/\'$/",'',$this->name); ++ $this->name = preg_replace("/^\'/",'',is_null($this->name)? "":$this->name); ++ $this->name = preg_replace("/\'$/",'',is_null($this->name)? "":$this->name); + break; + + case 'APPLIES': +@@ -1507,8 +1507,8 @@ class MatchingRuleUse extends SchemaItem { + while ($strings[$i] != ')') { + $i++; + $new_attr = $strings[$i]; +- $new_attr = preg_replace("/^\'/",'',$new_attr); +- $new_attr = preg_replace("/\'$/",'',$new_attr); ++ $new_attr = preg_replace("/^\'/",'',is_null($new_attr)? "":$new_attr); ++ $new_attr = preg_replace("/\'$/",'',is_null($new_attr)? "":$new_attr); + array_push($this->used_by_attrs,$new_attr); + $i++; + } |