net/phpldapadmin: fix support for php81+
PR: 266678 Reported by: Gerard Seibert Approved by: rene (mentor) Differential Revision: https://reviews.freebsd.org/D37513
This commit is contained in:
parent
d008ed9fc4
commit
fee2b338d2
36 changed files with 2697 additions and 134 deletions
|
@ -1,6 +1,6 @@
|
|||
PORTNAME= phpldapadmin
|
||||
PORTVERSION= 1.2.6.3
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= net www
|
||||
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
|
||||
|
||||
|
|
11
net/phpldapadmin/files/patch-htdocs_add__oclass__form.php
Normal file
11
net/phpldapadmin/files/patch-htdocs_add__oclass__form.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/add_oclass_form.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/add_oclass_form.php
|
||||
@@ -36,7 +36,7 @@ $ldap['attrs']['must'] = array();
|
||||
|
||||
foreach ($request['template']->getAttribute('objectclass')->getValues() as $oclass_name) {
|
||||
# Exclude "top" if its there.
|
||||
- if (! strcasecmp('top',$oclass_name))
|
||||
+ if (! strcasecmp('top',(string) $oclass_name))
|
||||
continue;
|
||||
|
||||
if ($soc = $app['server']->getSchemaObjectClass($oclass_name))
|
32
net/phpldapadmin/files/patch-htdocs_add__value__form.php
Normal file
32
net/phpldapadmin/files/patch-htdocs_add__value__form.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
--- htdocs/add_value_form.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/add_value_form.php
|
||||
@@ -32,12 +32,12 @@ if ($request['attribute']->isReadOnly())
|
||||
*/
|
||||
|
||||
# Render the form
|
||||
-if (! strcasecmp($request['attr'],'objectclass') || get_request('meth','REQUEST') != 'ajax') {
|
||||
+if (! strcasecmp((string) $request['attr'],'objectclass') || get_request('meth','REQUEST') != 'ajax') {
|
||||
# Render the form.
|
||||
$request['page']->drawTitle(sprintf('%s <b>%s</b> %s <b>%s</b>',_('Add new'),htmlspecialchars($request['attr']),_('value to'),htmlspecialchars(get_rdn($request['dn']))));
|
||||
$request['page']->drawSubTitle();
|
||||
|
||||
- if (! strcasecmp($request['attr'],'objectclass')) {
|
||||
+ if (! strcasecmp((string) $request['attr'],'objectclass')) {
|
||||
echo '<form action="cmd.php" method="post" class="new_value" id="entry_form">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="add_oclass_form" />';
|
||||
@@ -91,12 +91,12 @@ if (! strcasecmp($request['attr'],'objectclass') || ge
|
||||
printf('<td class="top">%s</td>',_('Enter the value(s) you would like to add:'));
|
||||
echo '<td>';
|
||||
|
||||
- if (! strcasecmp($request['attr'],'objectclass')) {
|
||||
+ if (! strcasecmp((string) $request['attr'],'objectclass')) {
|
||||
# If our attr is an objectClass, fetch all available objectClasses and remove those from the list that are already defined in the entry
|
||||
$socs = $app['server']->SchemaObjectClasses();
|
||||
|
||||
foreach ($request['attribute']->getValues() as $oclass)
|
||||
- unset($socs[strtolower($oclass)]);
|
||||
+ unset($socs[strtolower((string) $oclass)]);
|
||||
|
||||
# Draw objectClass selection
|
||||
echo '<table border="0">';
|
11
net/phpldapadmin/files/patch-htdocs_cmd.php
Normal file
11
net/phpldapadmin/files/patch-htdocs_cmd.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/cmd.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/cmd.php
|
||||
@@ -41,7 +41,7 @@ if (DEBUG_ENABLED)
|
||||
$www['page'] = new page($app['server']->getIndex());
|
||||
|
||||
# See if we can render the command
|
||||
-if (trim($www['cmd'])) {
|
||||
+if (trim((string) $www['cmd'])) {
|
||||
# If this is a READ-WRITE operation, the LDAP server must not be in READ-ONLY mode.
|
||||
if ($app['server']->isReadOnly() && ! in_array(get_request('cmd','REQUEST'),$app['readwrite_cmds']))
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
11
net/phpldapadmin/files/patch-htdocs_copy.php
Normal file
11
net/phpldapadmin/files/patch-htdocs_copy.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/copy.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/copy.php
|
||||
@@ -21,7 +21,7 @@ $ldap['SRC'] = $_SESSION[APPCONFIG]->getServer(get_req
|
||||
$ldap['DST'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id_dst'));
|
||||
|
||||
# Error checking
|
||||
-if (! trim($request['dnDST']))
|
||||
+if (! trim((string) $request['dnDST']))
|
||||
error(_('You left the destination DN blank.'),'error','index.php');
|
||||
|
||||
if ($ldap['DST']->isReadOnly())
|
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/download_binary_attr.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/download_binary_attr.php
|
||||
@@ -15,7 +15,7 @@ require './common.php';
|
||||
|
||||
$request = array();
|
||||
$request['dn'] = get_request('dn','GET');
|
||||
-$request['attr'] = strtolower(get_request('attr','GET',true));
|
||||
+$request['attr'] = strtolower((string) get_request('attr','GET',true));
|
||||
$request['index'] = get_request('index','GET',false,0);
|
||||
$request['type'] = get_request('type','GET',false,'octet-stream');
|
||||
$request['filename'] = get_request('filename','GET',false,sprintf('%s:%s.bin',get_rdn($request['dn'],true),$request['attr']));
|
11
net/phpldapadmin/files/patch-htdocs_export__form.php
Normal file
11
net/phpldapadmin/files/patch-htdocs_export__form.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/export_form.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/export_form.php
|
||||
@@ -166,7 +166,7 @@ function get_line_end_format() {
|
||||
*/
|
||||
function get_user_agent_string() {
|
||||
if (isset($_SERVER['HTTP_USER_AGENT']))
|
||||
- return strtolower($_SERVER['HTTP_USER_AGENT']);
|
||||
+ return strtolower((string) $_SERVER['HTTP_USER_AGENT']);
|
||||
else
|
||||
return '';
|
||||
}
|
11
net/phpldapadmin/files/patch-htdocs_login.php
Normal file
11
net/phpldapadmin/files/patch-htdocs_login.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/login.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/login.php
|
||||
@@ -22,7 +22,7 @@ if ($pass) {
|
||||
$user['password'] = get_request('login_pass');
|
||||
$user['password'] = html_entity_decode($user['password'], ENT_QUOTES);
|
||||
|
||||
- if ($user['login'] && !strlen($user['password'])) {
|
||||
+ if ($user['login'] && empty($user['password'])) {
|
||||
system_message(array(
|
||||
'title' => _('Authenticate to server'),
|
||||
'body' => _('You left the password blank.'),
|
16
net/phpldapadmin/files/patch-htdocs_login__form.php
Normal file
16
net/phpldapadmin/files/patch-htdocs_login__form.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
--- htdocs/login_form.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/login_form.php
|
||||
@@ -19,11 +19,11 @@ echo '<br />';
|
||||
$isHTTPS = false;
|
||||
|
||||
# Check if the current connection is encrypted
|
||||
-if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') {
|
||||
+if (isset($_SERVER['HTTPS']) && strtolower((string) $_SERVER['HTTPS']) == 'on') {
|
||||
$isHTTPS = true;
|
||||
}
|
||||
# Check if a proxy server downstream does encryption for us
|
||||
-elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL'])
|
||||
+elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower((string) $_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL'])
|
||||
== 'on') {
|
||||
$isHTTPS = true;
|
||||
}
|
29
net/phpldapadmin/files/patch-htdocs_monitor.php
Normal file
29
net/phpldapadmin/files/patch-htdocs_monitor.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
--- htdocs/monitor.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/monitor.php
|
||||
@@ -48,7 +48,7 @@ foreach (array(
|
||||
if (isset($results[$dn]['description'])) {
|
||||
$description = implode(' ',$results[$dn]['description']);
|
||||
|
||||
- $description = preg_replace('/"/','\'',$description);
|
||||
+ $description = preg_replace('/"/','\'',is_null($description)? "":$description);
|
||||
} else {
|
||||
$description = '';
|
||||
}
|
||||
@@ -103,7 +103,7 @@ foreach (array(
|
||||
else
|
||||
$sc = $results[$key][$attr];
|
||||
|
||||
- if (strcasecmp('supportedcontrol',$attr) == 0)
|
||||
+ if (strcasecmp('supportedcontrol',(string) $attr) == 0)
|
||||
foreach ($sc as $control) {
|
||||
$oidtotext = support_oid_to_text($control);
|
||||
|
||||
@@ -199,7 +199,7 @@ foreach (array(
|
||||
) as $dn ) {
|
||||
|
||||
$description = implode(' ',$results[$dn]['description']);
|
||||
- $description = preg_replace('/"/','\'',$description);
|
||||
+ $description = preg_replace('/"/','\'',is_null($description)? "":$description);
|
||||
|
||||
printf('<tr class="list_item"><td class="heading" rowspan="2"><acronym title="%s">%s</acronym></td></tr>',$description,$dn);
|
||||
echo '<tr class="list_item"><td class="value">';
|
11
net/phpldapadmin/files/patch-htdocs_purge__cache.php
Normal file
11
net/phpldapadmin/files/patch-htdocs_purge__cache.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/purge_cache.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/purge_cache.php
|
||||
@@ -16,7 +16,7 @@ $purge_session_keys = array('app_initialized','backtra
|
||||
$size = 0;
|
||||
foreach ($purge_session_keys as $key)
|
||||
if (isset($_SESSION[$key])) {
|
||||
- $size += strlen(serialize($_SESSION[$key]));
|
||||
+ $size += strlen((string) serialize($_SESSION[$key]));
|
||||
unset($_SESSION[$key]);
|
||||
}
|
||||
|
165
net/phpldapadmin/files/patch-htdocs_schema.php
Normal file
165
net/phpldapadmin/files/patch-htdocs_schema.php
Normal file
|
@ -0,0 +1,165 @@
|
|||
--- htdocs/schema.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/schema.php
|
||||
@@ -25,7 +25,7 @@ $entry['value'] = get_request('viewvalue','GET');
|
||||
|
||||
if (! is_null($entry['value'])) {
|
||||
$entry['viewed'] = false;
|
||||
- $entry['value'] = strtolower($entry['value']);
|
||||
+ $entry['value'] = strtolower((string) $entry['value']);
|
||||
}
|
||||
|
||||
$schema_error_str = sprintf('%s <b>%s</b>.<br /><br /></div>%s<ul><li>%s</li><li>%s</li><li>%s</li><li>%s</li></ul>',
|
||||
@@ -149,12 +149,12 @@ switch($entry['view']) {
|
||||
echo '<br />';
|
||||
|
||||
foreach ($sattrs as $attr) {
|
||||
- if (isAjaxEnabled() || (is_null($entry['value']) || ! trim($entry['value']) || $entry['value']==$attr->getName())) {
|
||||
- if ((! is_null($entry['value']) && $entry['value']==$attr->getName()) || ! trim($entry['value']))
|
||||
+ if (isAjaxEnabled() || (is_null($entry['value']) || ! trim((string) $entry['value']) || $entry['value']==$attr->getName())) {
|
||||
+ if ((! is_null($entry['value']) && $entry['value']==$attr->getName()) || ! trim((string) $entry['value']))
|
||||
$entry['viewed'] = true;
|
||||
|
||||
if (isAjaxEnabled() && $entry['value'])
|
||||
- printf('<div id="at%s" style="display: %s">',$attr->getName(),strcasecmp($entry['value'],$attr->getName()) ? 'none' : 'block');
|
||||
+ printf('<div id="at%s" style="display: %s">',(string) $attr->getName(),strcasecmp((string) $entry['value'],(string) $attr->getName()) ? 'none' : 'block');
|
||||
else
|
||||
printf('<div id="at%s">',$attr->getName());
|
||||
|
||||
@@ -193,10 +193,10 @@ switch($entry['view']) {
|
||||
printf('(%s)',_('none'));
|
||||
|
||||
else {
|
||||
- $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],strtolower($attr->getSupAttribute())));
|
||||
+ $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],strtolower((string) $attr->getSupAttribute())));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'attributes\',\'at\',\'%s\');">%s</a>',
|
||||
- $href,strtolower($attr->getSupAttribute()),$attr->getSupAttribute());
|
||||
+ $href,strtolower((string) $attr->getSupAttribute()),$attr->getSupAttribute());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getSupAttribute());
|
||||
}
|
||||
@@ -287,10 +287,10 @@ switch($entry['view']) {
|
||||
|
||||
else
|
||||
foreach ($attr->getAliases() as $alias) {
|
||||
- $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],strtolower($alias)));
|
||||
+ $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],strtolower((string) $alias)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'attributes\',\'at\',\'%s\');">%s</a>',
|
||||
- $href,strtolower($alias),$alias);
|
||||
+ $href,strtolower((string) $alias),$alias);
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$alias);
|
||||
}
|
||||
@@ -306,10 +306,10 @@ switch($entry['view']) {
|
||||
|
||||
else
|
||||
foreach ($attr->getUsedInObjectClasses() as $objectclass) {
|
||||
- $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($objectclass)));
|
||||
+ $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower((string) $objectclass)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onclick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a> ',
|
||||
- $href,$href,_('ObjectClasses'),strtolower($objectclass),$objectclass);
|
||||
+ $href,$href,_('ObjectClasses'),strtolower((string) $objectclass),$objectclass);
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a> ',$href,$objectclass);
|
||||
}
|
||||
@@ -379,8 +379,8 @@ switch($entry['view']) {
|
||||
$oid = $rule->getOID();
|
||||
$desc = $rule->getName(false);
|
||||
|
||||
- if (isAjaxEnabled() || (is_null($entry['value']) || ! trim($entry['value']) || $entry['value']==$rule->getName())) {
|
||||
- if ((! is_null($entry['value']) && $entry['value']==$rule->getName()) || ! trim($entry['value']))
|
||||
+ if (isAjaxEnabled() || (is_null($entry['value']) || ! trim((string) $entry['value']) || $entry['value']==$rule->getName())) {
|
||||
+ if ((! is_null($entry['value']) && $entry['value']==$rule->getName()) || ! trim((string) $entry['value']))
|
||||
$entry['viewed'] = true;
|
||||
|
||||
if (null != $rule->getDescription())
|
||||
@@ -391,7 +391,7 @@ switch($entry['view']) {
|
||||
|
||||
if (isAjaxEnabled() && $entry['value'])
|
||||
printf('<tr class="%s" id="mr%s" style="display: %s">',$counter%2 ? 'odd' : 'even',$rule->getName(),
|
||||
- strcasecmp($entry['value'],$rule->getName()) ? 'none' : '');
|
||||
+ strcasecmp((string) $entry['value'],(string) $rule->getName()) ? 'none' : '');
|
||||
else
|
||||
printf('<tr class="%s" id="mr%s">',$counter%2 ? 'odd' : 'even',$rule->getName());
|
||||
printf('<td>%s</td>',$oid);
|
||||
@@ -467,12 +467,12 @@ switch($entry['view']) {
|
||||
echo '<br />';
|
||||
|
||||
foreach ($socs as $name => $oclass) {
|
||||
- if (isAjaxEnabled() || (is_null($entry['value']) || ! trim($entry['value']) || $entry['value']==$oclass->getName())) {
|
||||
- if ((! is_null($entry['value']) && $entry['value']==$oclass->getName()) || ! trim($entry['value']))
|
||||
+ if (isAjaxEnabled() || (is_null($entry['value']) || ! trim((string) $entry['value']) || $entry['value']==$oclass->getName())) {
|
||||
+ if ((! is_null($entry['value']) && $entry['value']==$oclass->getName()) || ! trim((string) $entry['value']))
|
||||
$entry['viewed'] = true;
|
||||
|
||||
if (isAjaxEnabled() && $entry['value'])
|
||||
- printf('<div id="oc%s" style="display: %s">',$oclass->getName(),strcasecmp($entry['value'],$oclass->getName()) ? 'none' : '');
|
||||
+ printf('<div id="oc%s" style="display: %s">',(string) $oclass->getName(),strcasecmp((string) $entry['value'],(string) $oclass->getName()) ? 'none' : '');
|
||||
else
|
||||
printf('<div id="oc%s">',$oclass->getName());
|
||||
|
||||
@@ -494,10 +494,10 @@ switch($entry['view']) {
|
||||
|
||||
else
|
||||
foreach ($oclass->getSupClasses() as $i => $object_class) {
|
||||
- $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($object_class)));
|
||||
+ $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower((string) $object_class)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
- $href,strtolower($object_class),$object_class);
|
||||
+ $href,strtolower((string) $object_class),$object_class);
|
||||
else
|
||||
printf('<a href="cmd.php?%s&viewvalue=%s" title="%s">%s</a>',
|
||||
$href,$object_class,_('Jump to this objectClass definition'),$object_class);
|
||||
@@ -508,7 +508,7 @@ switch($entry['view']) {
|
||||
echo '</b></td></tr>';
|
||||
|
||||
printf('<tr class="odd"><td colspan="4">%s: <b>',_('Parent to'));
|
||||
- if (strcasecmp($oclass->getName(),'top') == 0) {
|
||||
+ if (strcasecmp((string) $oclass->getName(),'top') == 0) {
|
||||
$href = htmlspecialchars($entry['href']['objectclasses']);
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'\');">all</a>',
|
||||
@@ -521,10 +521,10 @@ switch($entry['view']) {
|
||||
|
||||
else
|
||||
foreach ($oclass->getChildObjectClasses() as $i => $object_class) {
|
||||
- $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($object_class)));
|
||||
+ $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower((string) $object_class)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" title="%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
- $href,_('Jump to this objectClass definition'),strtolower($object_class),$object_class);
|
||||
+ $href,_('Jump to this objectClass definition'),strtolower((string) $object_class),$object_class);
|
||||
else
|
||||
printf('<a href="cmd.php?%s" title="%s">%s</a>',$href,_('Jump to this objectClass definition'),$object_class);
|
||||
|
||||
@@ -553,11 +553,11 @@ switch($entry['view']) {
|
||||
|
||||
if ($attr->getSource() != $oclass->getName(false)) {
|
||||
echo '<br />';
|
||||
- $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($attr->getSource())));
|
||||
+ $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower((string) $attr->getSource())));
|
||||
printf('<small>(%s ',_('Inherited from'));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" title="%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
- $href,_('Jump to this objectClass definition'),strtolower($attr->getSource()),$attr->getSource());
|
||||
+ $href,_('Jump to this objectClass definition'),strtolower((string) $attr->getSource()),$attr->getSource());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getSource());
|
||||
echo ')</small>';
|
||||
@@ -586,11 +586,11 @@ switch($entry['view']) {
|
||||
|
||||
if ($attr->getSource() != $oclass->getName(false)) {
|
||||
echo '<br />';
|
||||
- $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($attr->getSource())));
|
||||
+ $href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower((string) $attr->getSource())));
|
||||
printf('<small>(%s ',_('Inherited from'));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" title="%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
- $href,_('Jump to this objectClass definition'),strtolower($attr->getSource()),$attr->getSource());
|
||||
+ $href,_('Jump to this objectClass definition'),strtolower((string) $attr->getSource()),$attr->getSource());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getSource());
|
||||
echo ')</small>';
|
20
net/phpldapadmin/files/patch-htdocs_server__info.php
Normal file
20
net/phpldapadmin/files/patch-htdocs_server__info.php
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- htdocs/server_info.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/server_info.php
|
||||
@@ -60,7 +60,7 @@ foreach ($attrs as $key => $values) {
|
||||
printf('<td>%s</td>',$oidtext['title']);
|
||||
|
||||
else
|
||||
- if (strlen($value) > 0)
|
||||
+ if (strlen((string) $value) > 0)
|
||||
printf('<td><small>%s</small></td>',$value);
|
||||
|
||||
} else {
|
||||
@@ -69,7 +69,7 @@ foreach ($attrs as $key => $values) {
|
||||
|
||||
print '</tr>';
|
||||
|
||||
- if (isset($oidtext['desc']) && trim($oidtext['desc']))
|
||||
+ if (isset($oidtext['desc']) && trim((string) $oidtext['desc']))
|
||||
printf('<tr><td><small>%s</small></td></tr>',$oidtext['desc']);
|
||||
else
|
||||
echo '<tr><td> </td></tr>';
|
11
net/phpldapadmin/files/patch-htdocs_view__jpeg__photo.php
Normal file
11
net/phpldapadmin/files/patch-htdocs_view__jpeg__photo.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- htdocs/view_jpeg_photo.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ htdocs/view_jpeg_photo.php
|
||||
@@ -15,7 +15,7 @@ require './common.php';
|
||||
|
||||
$request = array();
|
||||
$request['dn'] = get_request('dn','GET');
|
||||
-$request['attr'] = strtolower(get_request('attr','GET',false,'jpegphoto'));
|
||||
+$request['attr'] = strtolower((string) get_request('attr','GET',false,'jpegphoto'));
|
||||
$request['index'] = get_request('index','GET',false,0);
|
||||
$request['type'] = get_request('type','GET',false,'image/jpeg');
|
||||
$request['filename'] = get_request('filename','GET',false,sprintf('%s.jpg',get_rdn($request['dn'],true)));
|
47
net/phpldapadmin/files/patch-lib_AJAXTree.php
Normal file
47
net/phpldapadmin/files/patch-lib_AJAXTree.php
Normal file
|
@ -0,0 +1,47 @@
|
|||
--- lib/AJAXTree.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/AJAXTree.php
|
||||
@@ -31,7 +31,7 @@ class AJAXTree extends HTMLTree {
|
||||
# Level pre-treatment
|
||||
$code = '';
|
||||
if (is_string($level)) {
|
||||
- for ($i=0; $i<strlen($level); $i++) {
|
||||
+ for ($i=0; $i<strlen((string) $level); $i++) {
|
||||
if ($level[$i] == '0')
|
||||
$code .= '0';
|
||||
elseif ($level[$i] == '1')
|
||||
@@ -41,7 +41,7 @@ class AJAXTree extends HTMLTree {
|
||||
} elseif ($level > 0)
|
||||
$code = '0' * $level;
|
||||
|
||||
- $level = strlen($code);
|
||||
+ $level = strlen((string) $code);
|
||||
|
||||
# Get entry to display as node
|
||||
$entry = $this->getEntry($item);
|
||||
@@ -189,7 +189,7 @@ class AJAXTree extends HTMLTree {
|
||||
|
||||
$indent = '';
|
||||
|
||||
- for ($i=0; $i<strlen($code); $i++) {
|
||||
+ for ($i=0; $i<strlen((string) $code); $i++) {
|
||||
switch ($code[$i]) {
|
||||
case '0':
|
||||
$indent .= sprintf('<img src="%s/tree_space.png" alt=" " class="imgs" style="border: 0px; vertical-align:text-top;" />',IMGDIR);
|
||||
@@ -223,7 +223,7 @@ class AJAXTree extends HTMLTree {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- if (strlen($level) == 0)
|
||||
+ if (strlen((string) $level) == 0)
|
||||
return '';
|
||||
|
||||
$server = $this->getServer();
|
||||
@@ -243,7 +243,7 @@ class AJAXTree extends HTMLTree {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- if (strlen($level) == 0)
|
||||
+ if (strlen((string) $level) == 0)
|
||||
return '';
|
||||
|
||||
$server = $this->getServer();
|
|
@ -1,11 +1,59 @@
|
|||
--- lib/Attribute.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/Attribute.php
|
||||
@@ -12,7 +12,7 @@
|
||||
* @package phpLDAPadmin
|
||||
* @subpackage Templates
|
||||
*/
|
||||
-class Attribute {
|
||||
+class PLAAttribute {
|
||||
# Attribute Name
|
||||
public $name;
|
||||
# Source of this attribute definition
|
||||
@@ -133,9 +133,9 @@ class PLAAttribute {
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs,$this->name);
|
||||
|
||||
if ($real)
|
||||
- return $lower ? strtolower($this->name) : $this->name;
|
||||
+ return $lower ? strtolower((string) $this->name) : $this->name;
|
||||
else
|
||||
- return $lower ? strtolower($this->real_attr_name()) : $this->real_attr_name();
|
||||
+ return $lower ? strtolower((string) $this->real_attr_name()) : $this->real_attr_name();
|
||||
}
|
||||
|
||||
public function getValues() {
|
||||
@@ -389,7 +389,7 @@ class PLAAttribute {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- $this->type = strtolower($type);
|
||||
+ $this->type = strtolower((string) $type);
|
||||
}
|
||||
|
||||
public function getType() {
|
||||
@@ -403,7 +403,7 @@ class PLAAttribute {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- $this->ldaptype = strtolower($type);
|
||||
+ $this->ldaptype = strtolower((string) $type);
|
||||
}
|
||||
|
||||
public function getLDAPtype() {
|
||||
@@ -671,7 +671,7 @@ class PLAAttribute {
|
||||
|
||||
# Store our Aliases
|
||||
foreach ($sattr->getAliases() as $alias)
|
||||
- array_push($this->aliases,strtolower($alias));
|
||||
+ array_push($this->aliases,strtolower((string) $alias));
|
||||
|
||||
if ($sattr->getIsSingleValue())
|
||||
$this->setMaxValueCount(1);
|
||||
@@ -840,7 +840,7 @@ class PLAAttribute {
|
||||
'type'=>'warn'));
|
||||
}
|
||||
|
||||
- elseif (is_string($values) && (strlen($values) > 0))
|
||||
+ elseif (is_string($values) && (strlen((string) $values) > 0))
|
||||
$this->values = array($values);
|
||||
}
|
||||
|
||||
@@ -877,7 +877,7 @@ class PLAAttribute {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name);
|
||||
|
||||
- return preg_replace('/;.*$/U','',$this->name);
|
||||
+ return preg_replace('/;.*$/U','',is_null($this->name)? "":$this->name);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,11 +1,50 @@
|
|||
--- lib/AttributeFactory.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/AttributeFactory.php
|
||||
@@ -133,7 +133,7 @@ class AttributeFactory {
|
||||
@@ -83,7 +83,7 @@ class AttributeFactory {
|
||||
if (isset($values['type']))
|
||||
switch ($values['type']) {
|
||||
case 'password':
|
||||
- if (! strcasecmp($name,'sambaLMPassword') || ! strcasecmp($name,'sambaNTPassword'))
|
||||
+ if (! strcasecmp((string) $name,'sambaLMPassword') || ! strcasecmp((string) $name,'sambaNTPassword'))
|
||||
return $this->newSambaPasswordAttribute($name,$values,$server_id,$source);
|
||||
else
|
||||
return $this->newPasswordAttribute($name,$values,$server_id,$source);
|
||||
@@ -96,7 +96,7 @@ class AttributeFactory {
|
||||
return $this->newMultiLineAttribute($name,$values,$server_id,$source);
|
||||
}
|
||||
|
||||
- if (! strcasecmp($name,'objectClass')) {
|
||||
+ if (! strcasecmp((string) $name,'objectClass')) {
|
||||
return $this->newObjectClassAttribute($name,$values,$server_id,$source);
|
||||
|
||||
} elseif ($app['server']->isJpegPhoto($name) || in_array($name,$app['server']->getValue('server','jpeg_attributes'))) {
|
||||
@@ -105,16 +105,16 @@ class AttributeFactory {
|
||||
} elseif ($app['server']->isAttrBinary($name)) {
|
||||
return $this->newBinaryAttribute($name,$values,$server_id,$source);
|
||||
|
||||
- } elseif (! strcasecmp($name,'userPassword')) {
|
||||
+ } elseif (! strcasecmp((string) $name,'userPassword')) {
|
||||
return $this->newPasswordAttribute($name,$values,$server_id,$source);
|
||||
|
||||
- } elseif (! strcasecmp($name,'sambaLMPassword') || ! strcasecmp($name,'sambaNTPassword')) {
|
||||
+ } elseif (! strcasecmp((string) $name,'sambaLMPassword') || ! strcasecmp((string) $name,'sambaNTPassword')) {
|
||||
return $this->newSambaPasswordAttribute($name,$values,$server_id,$source);
|
||||
|
||||
- } elseif (in_array(strtolower($name),array_keys(array_change_key_case($_SESSION[APPCONFIG]->getValue('appearance','date_attrs'))))) {
|
||||
+ } elseif (in_array(strtolower((string) $name),array_keys(array_change_key_case($_SESSION[APPCONFIG]->getValue('appearance','date_attrs'))))) {
|
||||
return $this->newDateAttribute($name,$values,$server_id,$source);
|
||||
|
||||
- } elseif (in_array(strtolower($name),array('shadowlastchange','shadowmin','shadowmax','shadowexpire','shadowwarning','shadowinactive'))) {
|
||||
+ } elseif (in_array(strtolower((string) $name),array('shadowlastchange','shadowmin','shadowmax','shadowexpire','shadowwarning','shadowinactive'))) {
|
||||
return $this->newShadowAttribute($name,$values,$server_id,$source);
|
||||
|
||||
} elseif ($app['server']->isAttrBoolean($name)) {
|
||||
@@ -129,7 +129,7 @@ class AttributeFactory {
|
||||
} elseif ($app['server']->isMultiLineAttr($name)) {
|
||||
return $this->newMultiLineAttribute($name,$values,$server_id,$source);
|
||||
|
||||
- } elseif (! strcasecmp($name,'gidNumber')) {
|
||||
+ } elseif (! strcasecmp((string) $name,'gidNumber')) {
|
||||
return $this->newGidAttribute($name,$values,$server_id,$source);
|
||||
|
||||
} else {
|
||||
- return new Attribute($name,$values,$server_id,$source);
|
||||
+ return new PLAAttribute($name,$values,$server_id,$source);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
32
net/phpldapadmin/files/patch-lib_HTMLTree.php
Normal file
32
net/phpldapadmin/files/patch-lib_HTMLTree.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
--- lib/HTMLTree.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/HTMLTree.php
|
||||
@@ -168,9 +168,10 @@ class HTMLTree extends Tree {
|
||||
printf('<td class="name" colspan="%s">',$this->getDepth()+3-1);
|
||||
printf('%s',$server->getName());
|
||||
|
||||
+ // strftime('%H:%M',$server->inactivityTime()));
|
||||
if (! is_null($server->inactivityTime())) {
|
||||
$m = sprintf(_('Inactivity will log you off at %s'),
|
||||
- strftime('%H:%M',$server->inactivityTime()));
|
||||
+ date('H:i',$server->inactivityTime()));
|
||||
printf(' <img width="14" height="14" src="%s/timeout.png" title="%s" alt="%s"/>',IMGDIR,$m,'Timeout');
|
||||
}
|
||||
echo '</td></tr>';
|
||||
@@ -361,7 +362,7 @@ class HTMLTree extends Tree {
|
||||
$logged_in_dn_array = array();
|
||||
|
||||
} else {
|
||||
- $logged_in_branch = preg_replace('/,'.$server->getContainerTop($logged_in_dn).'$/','',$logged_in_dn);
|
||||
+ $logged_in_branch = preg_replace('/,'.$server->getContainerTop($logged_in_dn).'$/','',is_null($logged_in_dn)? "":$logged_in_dn);
|
||||
$logged_in_dn_array = pla_explode_dn($logged_in_branch);
|
||||
}
|
||||
|
||||
@@ -375,7 +376,7 @@ class HTMLTree extends Tree {
|
||||
if (! is_array($logged_in_dn_array))
|
||||
$logged_in_dn_array = array($logged_in_dn);
|
||||
|
||||
- if (trim($logged_in_dn)) {
|
||||
+ if (trim((string) $logged_in_dn)) {
|
||||
if ($server->dnExists($logged_in_dn))
|
||||
foreach ($logged_in_dn_array as $rdn_piece) {
|
||||
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$server->getIndex(),rawurlencode($rdn));
|
|
@ -1,31 +1,120 @@
|
|||
--- lib/PageRender.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/PageRender.php
|
||||
@@ -827,7 +827,7 @@ class PageRender extends Visitor {
|
||||
if (! $attribute->getOldValue($i))
|
||||
return;
|
||||
@@ -182,7 +182,7 @@ class PageRender extends Visitor {
|
||||
$attribute2 = $this->template->getAttribute($joinattr);
|
||||
|
||||
- draw_jpeg_photo($this->getServer(),$this->template->getDN(),$attribute->getName(),$i,false,false);
|
||||
+ draw_jpeg_photo($this->getServer(),$this->template->getDN(),$i,$attribute->getName(),false,false);
|
||||
if (! $attribute2) {
|
||||
- if (($pv = get_request(strtolower($joinattr),'REQUEST')) && isset($pv[$attribute->getName()][$i])) {
|
||||
+ if (($pv = get_request(strtolower((string) $joinattr),'REQUEST')) && isset($pv[$attribute->getName()][$i])) {
|
||||
array_push($values,$pv[$attribute->getName()][$i]);
|
||||
|
||||
if (! $pv[$attribute->getName()][$i])
|
||||
@@ -242,7 +242,7 @@ class PageRender extends Visitor {
|
||||
return;
|
||||
|
||||
# Get the attribute.
|
||||
- if (preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',strtolower($args[1]),$matchall)) {
|
||||
+ if (preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',strtolower((string) $args[1]),$matchall)) {
|
||||
if (count($matchall[1]) != 1)
|
||||
system_message(array(
|
||||
'title'=>_('Invalid value count for PasswordEncrypt'),
|
||||
@@ -255,11 +255,11 @@ class PageRender extends Visitor {
|
||||
} else
|
||||
$passwordvalue = $args[1];
|
||||
|
||||
- if (! trim($passwordvalue) || in_array($passwordvalue,$attribute->getOldValues()))
|
||||
+ if (! trim((string) $passwordvalue) || in_array($passwordvalue,$attribute->getOldValues()))
|
||||
return;
|
||||
|
||||
# Get the encoding
|
||||
- if ($passwordattr && preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',strtolower($args[0]),$matchall)) {
|
||||
+ if ($passwordattr && preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',strtolower((string) $args[0]),$matchall)) {
|
||||
if (count($matchall[1]) != 1)
|
||||
system_message(array(
|
||||
'title'=>_('Invalid value count for PasswordEncrypt'),
|
||||
@@ -271,7 +271,7 @@ class PageRender extends Visitor {
|
||||
} else
|
||||
$enc = $args[0];
|
||||
|
||||
- $enc = strtolower($enc);
|
||||
+ $enc = strtolower((string) $enc);
|
||||
|
||||
switch ($enc) {
|
||||
case 'lm':
|
||||
@@ -403,7 +403,7 @@ class PageRender extends Visitor {
|
||||
$alias_note = $this->get($note,$attribute);
|
||||
|
||||
if ($alias_note) {
|
||||
- if (trim($attr_note))
|
||||
+ if (trim((string) $attr_note))
|
||||
$attr_note .= ', ';
|
||||
|
||||
$attr_note .= $alias_note;
|
||||
@@ -423,7 +423,7 @@ class PageRender extends Visitor {
|
||||
# Is there a user-friendly translation available for this attribute?
|
||||
$friendly_name = $attribute->getFriendlyName();
|
||||
|
||||
- if (strtolower($friendly_name) != $attribute->getName())
|
||||
+ if (strtolower((string) $friendly_name) != $attribute->getName())
|
||||
return sprintf('<acronym title="%s: \'%s\' %s \'%s\'">%s</acronym>',
|
||||
_('Note'),$friendly_name,_('is an alias for'),$attribute->getName(false),_('alias'));
|
||||
else
|
||||
@@ -954,7 +954,7 @@ class PageRender extends Visitor {
|
||||
$server = $this->getServer();
|
||||
$val = $attribute->getValue($i);
|
||||
|
||||
- if (trim($val))
|
||||
+ if (trim((string) $val))
|
||||
$enc_type = get_enc_type($val);
|
||||
else
|
||||
$enc_type = $server->getValue('appearance','pla_password_hash');
|
||||
@@ -966,7 +966,7 @@ class PageRender extends Visitor {
|
||||
htmlspecialchars($attribute->getName()),$i,htmlspecialchars($attribute->getName()),
|
||||
$i,htmlspecialchars($val),($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '');
|
||||
|
||||
- if (trim($val))
|
||||
+ if (trim((string) $val))
|
||||
$this->draw('CheckLink',$attribute,'new_values_'.htmlspecialchars($attribute->getName()).'_'.$i);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -844,16 +844,16 @@ class PageRender extends Visitor {
|
||||
# If the attribute is modified, the new value needs to be stored in a session variable for the draw_jpeg_photo callback.
|
||||
if ($attribute->hasBeenModified()) {
|
||||
$_SESSION['tmp'][$attribute->getName()][$i] = $attribute->getValue($i);
|
||||
- draw_jpeg_photo(null,$this->template->getDN(),$attribute->getName(),$i,false,false);
|
||||
+ draw_jpeg_photo(null,$this->template->getDN(),$i,$attribute->getName(),false,false);
|
||||
} else
|
||||
- draw_jpeg_photo($this->getServer(),$this->template->getDN(),$attribute->getName(),$i,false,false);
|
||||
+ draw_jpeg_photo($this->getServer(),$this->template->getDN(),$i,$attribute->getName(),false,false);
|
||||
}
|
||||
@@ -979,7 +979,7 @@ class PageRender extends Visitor {
|
||||
$enc_type = get_enc_type($val);
|
||||
|
||||
protected function drawFormReadOnlyValueJpegAttribute($attribute,$i) {
|
||||
$this->draw('HiddenValue',$attribute,$i);
|
||||
$_SESSION['tmp'][$attribute->getName()][$i] = $attribute->getValue($i);
|
||||
# Set the default hashing type if the password is blank (must be newly created)
|
||||
- if (trim($val))
|
||||
+ if (trim((string) $val))
|
||||
$enc_type = get_enc_type($val);
|
||||
else
|
||||
$enc_type = $server->getValue('appearance','pla_password_hash');
|
||||
@@ -1125,7 +1125,7 @@ class PageRender extends Visitor {
|
||||
|
||||
- draw_jpeg_photo(null,$this->template->getDN(),$attribute->getName(),$i,false,false);
|
||||
+ draw_jpeg_photo(null,$this->template->getDN(),$i,$attribute->getName(),false,false);
|
||||
}
|
||||
foreach ($attribute->getSelection() as $value => $description) {
|
||||
printf('<option value="%s" %s>%s</option>',$value,
|
||||
- ((strcasecmp($value,$val) == 0) && $found = true) ? 'selected="selected"' : '',$description);
|
||||
+ ((strcasecmp((string) $value,(string) $val) == 0) && (string) $found = true) ? 'selected="selected"' : '',(string) $description);
|
||||
|
||||
if ($value == '')
|
||||
$empty_value = true;
|
||||
@@ -1140,7 +1140,7 @@ class PageRender extends Visitor {
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
- if ((strlen($val) > 0) && ! $empty_value && $this->template->getDN()) {
|
||||
+ if ((strlen((string) $val) > 0) && ! $empty_value && $this->template->getDN()) {
|
||||
printf('<option value="">(%s)</option>',_('none, remove value'));
|
||||
echo "\n";
|
||||
}
|
||||
@@ -1212,11 +1212,11 @@ class PageRender extends Visitor {
|
||||
$today = date('U');
|
||||
|
||||
echo '<br/><small>';
|
||||
- if (($today < $shadow_date) && in_array(strtolower($attribute->getName()),$shadow_before_today_attrs))
|
||||
+ if (($today < $shadow_date) && in_array(strtolower((string) $attribute->getName()),$shadow_before_today_attrs))
|
||||
printf('<span style="color:red">(%s)</span>',
|
||||
strftime($_SESSION[APPCONFIG]->getValue('appearance','date'),$shadow_date));
|
||||
|
||||
- elseif (($today > $shadow_date) && in_array(strtolower($attribute->getName()),$shadow_after_today_attrs))
|
||||
+ elseif (($today > $shadow_date) && in_array(strtolower((string) $attribute->getName()),$shadow_after_today_attrs))
|
||||
printf('<span style="color:red">(%s)</span>',
|
||||
strftime($_SESSION[APPCONFIG]->getValue('appearance','date'),$shadow_date));
|
||||
|
||||
protected function drawFormReadOnlyValueMultiLineAttribute($attribute,$i) {
|
||||
|
|
68
net/phpldapadmin/files/patch-lib_Query.php
Normal file
68
net/phpldapadmin/files/patch-lib_Query.php
Normal file
|
@ -0,0 +1,68 @@
|
|||
--- lib/Query.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/Query.php
|
||||
@@ -87,9 +87,9 @@ class Query extends xmlTemplate {
|
||||
if (in_array($xml_key,$storelower))
|
||||
if (is_array($xml_value))
|
||||
foreach ($xml_value as $index => $value)
|
||||
- $xml_value[$index] = strtolower($value);
|
||||
+ $xml_value[$index] = strtolower((string) $value);
|
||||
else
|
||||
- $xml_value = strtolower($xml_value);
|
||||
+ $xml_value = strtolower((string) $xml_value);
|
||||
|
||||
# Items that must be stored as arrays
|
||||
if (in_array($xml_key,$storearray) && ! is_array($xml_value))
|
||||
@@ -109,7 +109,7 @@ class Query extends xmlTemplate {
|
||||
# Check we have some manditory items.
|
||||
foreach (array() as $key) {
|
||||
if (! isset($this->$key)
|
||||
- || (! is_array($this->$key) && ! trim($this->$key))) {
|
||||
+ || (! is_array($this->$key) && ! trim((string) $this->$key))) {
|
||||
|
||||
$this->setInvalid(sprintf(_('Missing %s in the XML file.'),$key));
|
||||
break;
|
||||
@@ -138,7 +138,7 @@ class Query extends xmlTemplate {
|
||||
$query['scope'] = get_request('scope','REQUEST',false,'sub');
|
||||
$attrs = get_request('display_attrs','REQUEST');
|
||||
|
||||
- $attrs = preg_replace('/\s+/','',$attrs);
|
||||
+ $attrs = preg_replace('/\s+/','',is_null($attrs)? "":$attrs);
|
||||
if ($attrs)
|
||||
$query['attrs'] = explode(',',$attrs);
|
||||
else
|
||||
@@ -198,9 +198,9 @@ class Query extends xmlTemplate {
|
||||
public function getDNEncode($url=true) {
|
||||
// @todo Be nice to do all this in 1 location
|
||||
if ($url)
|
||||
- return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn));
|
||||
+ return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",is_null($this->dn)? "":$this->dn));
|
||||
else
|
||||
- return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn);
|
||||
+ return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",is_null($this->dn)? "":$this->dn);
|
||||
}
|
||||
|
||||
public function getAttrSortOrder() {
|
||||
@@ -216,9 +216,9 @@ class Query extends xmlTemplate {
|
||||
array_push($result,$attribute->getName());
|
||||
|
||||
} else {
|
||||
- $display = preg_replace('/,\s+/',',',get_request('orderby','REQUEST',false,'dn'));
|
||||
+ $display = preg_replace('/,\s+/',',',get_request('orderby','REQUEST',false,is_null('dn')? "":'dn'));
|
||||
|
||||
- if (trim($display))
|
||||
+ if (trim((string) $display))
|
||||
$result = explode(',',$display);
|
||||
}
|
||||
|
||||
@@ -238,9 +238,9 @@ class Query extends xmlTemplate {
|
||||
array_push($result,$attribute->getName());
|
||||
|
||||
} else {
|
||||
- $display = preg_replace('/,\s+/',',',get_request('display_attrs','REQUEST',false,''));
|
||||
+ $display = preg_replace('/,\s+/',',',get_request('display_attrs','REQUEST',false,is_null('')? "":''));
|
||||
|
||||
- if (trim($display))
|
||||
+ if (trim((string) $display))
|
||||
$result = explode(',',$display);
|
||||
}
|
||||
|
38
net/phpldapadmin/files/patch-lib_QueryRender.php
Normal file
38
net/phpldapadmin/files/patch-lib_QueryRender.php
Normal file
|
@ -0,0 +1,38 @@
|
|||
--- lib/QueryRender.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/QueryRender.php
|
||||
@@ -280,7 +280,7 @@ class QueryRender extends PageRender {
|
||||
|
||||
# Iterate over each attribute for this entry
|
||||
foreach (explode(',',$ado) as $attr) {
|
||||
- $attr = strtolower($attr);
|
||||
+ $attr = strtolower((string) $attr);
|
||||
|
||||
# Ignore DN, we've already displayed it.
|
||||
if ($attr == 'dn')
|
||||
@@ -379,7 +379,7 @@ class QueryRender extends PageRender {
|
||||
|
||||
# Special case for DNs
|
||||
if ($attr == 'dn') {
|
||||
- $dn_display = strlen($dndetails['dn']) > 40
|
||||
+ $dn_display = strlen((string) $dndetails['dn']) > 40
|
||||
? sprintf('<acronym title="%s">%s...</acronym>',htmlspecialchars($dndetails['dn']),htmlspecialchars(substr($dndetails['dn'],0,40)))
|
||||
: htmlspecialchars($dndetails['dn']);
|
||||
|
||||
@@ -461,7 +461,7 @@ class QueryRender extends PageRender {
|
||||
$results = array();
|
||||
|
||||
foreach (explode(',',$this->template->getAttrDisplayOrder()) as $attr)
|
||||
- $results[strtolower($attr)] = $attribute_factory->newAttribute($attr,array('values'=>array()),$this->getServerID());
|
||||
+ $results[strtolower((string) $attr)] = $attribute_factory->newAttribute($attr,array('values'=>array()),$this->getServerID());
|
||||
|
||||
return $results;
|
||||
}
|
||||
@@ -470,7 +470,7 @@ class QueryRender extends PageRender {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- return preg_replace('/=/','.',base64_encode($dn));
|
||||
+ return preg_replace('/=/','.',is_null(base64_encode($dn)? "":base64_encode($dn));
|
||||
}
|
||||
|
||||
private function drawBaseTabs() {
|
248
net/phpldapadmin/files/patch-lib_Template.php
Normal file
248
net/phpldapadmin/files/patch-lib_Template.php
Normal file
|
@ -0,0 +1,248 @@
|
|||
--- lib/Template.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/Template.php
|
||||
@@ -100,7 +100,7 @@ class Template extends xmlTemplate {
|
||||
foreach ($xmldata['template'][$xml_key]['objectclass'] as $index => $details) {
|
||||
|
||||
# XML files with only 1 objectClass dont have a numeric index.
|
||||
- $soc = $server->getSchemaObjectClass(strtolower($details));
|
||||
+ $soc = $server->getSchemaObjectClass(strtolower((string) $details));
|
||||
|
||||
# If we havent recorded this objectclass already, do so now.
|
||||
if (is_object($soc) && ! in_array($soc->getName(),$objectclasses))
|
||||
@@ -115,7 +115,7 @@ class Template extends xmlTemplate {
|
||||
|
||||
} else {
|
||||
# XML files with only 1 objectClass dont have a numeric index.
|
||||
- $soc = $server->getSchemaObjectClass(strtolower($xmldata['template'][$xml_key]['objectclass']));
|
||||
+ $soc = $server->getSchemaObjectClass(strtolower((string) $xmldata['template'][$xml_key]['objectclass']));
|
||||
|
||||
# If we havent recorded this objectclass already, do so now.
|
||||
if (is_object($soc) && ! in_array($soc->getName(),$objectclasses))
|
||||
@@ -160,9 +160,9 @@ class Template extends xmlTemplate {
|
||||
if (in_array($xml_key,$storelower))
|
||||
if (is_array($xml_value))
|
||||
foreach ($xml_value as $index => $value)
|
||||
- $xml_value[$index] = strtolower($value);
|
||||
+ $xml_value[$index] = strtolower((string) $value);
|
||||
else
|
||||
- $xml_value = strtolower($xml_value);
|
||||
+ $xml_value = strtolower((string) $xml_value);
|
||||
|
||||
# Items that must be stored as arrays
|
||||
if (in_array($xml_key,$storearray) && ! is_array($xml_value))
|
||||
@@ -198,7 +198,7 @@ class Template extends xmlTemplate {
|
||||
# Check we have some manditory items.
|
||||
foreach (array('rdn','structural_oclass','visible') as $key) {
|
||||
if (! isset($this->$key)
|
||||
- || (! is_array($this->$key) && ! trim($this->$key))) {
|
||||
+ || (! is_array($this->$key) && ! trim((string) $this->$key))) {
|
||||
|
||||
$this->setInvalid(sprintf(_('Missing %s in the XML file.'),$key));
|
||||
break;
|
||||
@@ -272,7 +272,7 @@ class Template extends xmlTemplate {
|
||||
'body'=>sprintf('DN (%s) didnt exist in LDAP?',$this->dn),
|
||||
'type'=>'info'));
|
||||
|
||||
- $rdnarray = rdn_explode(strtolower(get_rdn(dn_escape($this->dn))));
|
||||
+ $rdnarray = rdn_explode(strtolower((string) get_rdn(dn_escape($this->dn))));
|
||||
|
||||
$counter = 1;
|
||||
foreach ($server->getDNAttrValues($this->dn,null,LDAP_DEREF_NEVER,array_merge(array('*'),$server->getValue('server','custom_attrs')),$nocache) as $attr => $values) {
|
||||
@@ -298,7 +298,7 @@ class Template extends xmlTemplate {
|
||||
# Work out the RDN attributes
|
||||
foreach ($attribute->getValues() as $index => $value)
|
||||
if (in_array(sprintf('%s=%s',
|
||||
- $attribute->getName(),strtolower($attribute->getValue($index))),$rdnarray))
|
||||
+ $attribute->getName(),strtolower((string) $attribute->getValue($index))),$rdnarray))
|
||||
$attribute->setRDN($counter++);
|
||||
|
||||
if ($makeVisible)
|
||||
@@ -355,7 +355,7 @@ class Template extends xmlTemplate {
|
||||
|
||||
# Prune out entries with a blank value.
|
||||
foreach ($values as $index => $value)
|
||||
- if (! strlen(trim($value)))
|
||||
+ if (! strlen((string) trim((string) $value)))
|
||||
unset($values[$index]);
|
||||
|
||||
$attribute = $this->getAttribute($attr);
|
||||
@@ -603,7 +603,7 @@ class Template extends xmlTemplate {
|
||||
foreach ($rdnarray as $index => $rdnattr) {
|
||||
list($attr,$value) = explode('=',$rdnattr);
|
||||
|
||||
- if (strtolower($attr) == $attribute->getName()) {
|
||||
+ if (strtolower((string) $attr) == $attribute->getName()) {
|
||||
$attribute->setRDN($counter++);
|
||||
unset($rdnarray[$index]);
|
||||
}
|
||||
@@ -637,9 +637,9 @@ class Template extends xmlTemplate {
|
||||
public function getDNEncode($url=true) {
|
||||
// @todo Be nice to do all this in 1 location
|
||||
if ($url)
|
||||
- return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->getDN()));
|
||||
+ return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",is_null($this->getDN())? "":$this->getDN()));
|
||||
else
|
||||
- return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->getDN());
|
||||
+ return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",is_null($this->getDN())? "":$this->getDN());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -676,9 +676,9 @@ class Template extends xmlTemplate {
|
||||
public function getContainerEncode($url=true) {
|
||||
// @todo Be nice to do all this in 1 location
|
||||
if ($url)
|
||||
- return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->container));
|
||||
+ return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",is_null($this->container)? "":$this->container));
|
||||
else
|
||||
- return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->container);
|
||||
+ return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",is_null($this->container)? "":$this->container);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -707,7 +707,7 @@ class Template extends xmlTemplate {
|
||||
$modified = false;
|
||||
foreach ($rdnarray as $index => $rdnattr) {
|
||||
list($attr,$value) = explode('=',$rdnattr);
|
||||
- if (strtolower($attr) == $attribute->getName()) {
|
||||
+ if (strtolower((string) $attr) == $attribute->getName()) {
|
||||
|
||||
# If this is already marked as an RDN, then this multivalue RDN was updated on a previous loop
|
||||
if (! $modified) {
|
||||
@@ -726,7 +726,7 @@ class Template extends xmlTemplate {
|
||||
}
|
||||
|
||||
// @todo If this is a Jpeg Attribute, we need to mark it read only, since it cant be deleted like text attributes can
|
||||
- if (strcasecmp(get_class($attribute),'jpegAttribute') == 0)
|
||||
+ if (strcasecmp(get_class((string) $attribute),'jpegAttribute') == 0)
|
||||
$attribute->setReadOnly();
|
||||
}
|
||||
|
||||
@@ -761,7 +761,7 @@ class Template extends xmlTemplate {
|
||||
$result = array();
|
||||
|
||||
foreach ($this->attributes as $index => $attribute) {
|
||||
- if ($attribute->getLDAPtype() == strtolower($type))
|
||||
+ if ($attribute->getLDAPtype() == strtolower((string) $type))
|
||||
array_push($result,$attribute->getName());
|
||||
}
|
||||
|
||||
@@ -775,7 +775,7 @@ class Template extends xmlTemplate {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- if (in_array(strtolower($attr),$this->getAttrbyLdapType($type)))
|
||||
+ if (in_array(strtolower((string) $attr),$this->getAttrbyLdapType($type)))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
@@ -856,7 +856,7 @@ class Template extends xmlTemplate {
|
||||
}
|
||||
|
||||
# Chop the last plus sign off when returning
|
||||
- return preg_replace('/\+$/','',$rdn);
|
||||
+ return preg_replace('/\+$/','',is_null($rdn)? "":$rdn);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1166,25 +1166,25 @@ class Template extends xmlTemplate {
|
||||
$attribute->js['autoFill'] = '';
|
||||
|
||||
$formula = $string;
|
||||
- $formula = preg_replace('/^([^%])/','\'$1',$formula);
|
||||
- $formula = preg_replace('/([^%])$/','$1\'',$formula);
|
||||
+ $formula = preg_replace('/^([^%])/','\'$1',is_null($formula)? "":$formula);
|
||||
+ $formula = preg_replace('/([^%])$/','$1\'',is_null($formula)? "":$formula);
|
||||
|
||||
# Check that our attributes match our schema attributes.
|
||||
foreach ($matchall[1] as $index => $checkattr) {
|
||||
$sattr = $this->getServer()->getSchemaAttribute($checkattr);
|
||||
|
||||
# If the attribute is the same as in the XML file, then dont need to do anything.
|
||||
- if (! $sattr || ! strcasecmp($sattr->getName(),$checkattr))
|
||||
+ if (! (string) $sattr || ! strcasecmp((string) $sattr->getName(),(string) $checkattr))
|
||||
continue;
|
||||
|
||||
- $formula = preg_replace("/$checkattr/",$sattr->getName(),$formula);
|
||||
+ $formula = preg_replace("/$checkattr/",$sattr->getName(),is_null($formula)? "":$formula);
|
||||
$matchall[1][$index] = $sattr->getName();
|
||||
}
|
||||
|
||||
$elem_id = 0;
|
||||
|
||||
foreach ($matchall[0] as $index => $null) {
|
||||
- $match_attr = strtolower($matchall[1][$index]);
|
||||
+ $match_attr = strtolower((string) $matchall[1][$index]);
|
||||
$match_subst = $matchall[2][$index];
|
||||
$match_mod = $matchall[3][$index];
|
||||
$match_delim = $matchall[4][$index];
|
||||
@@ -1199,7 +1199,7 @@ class Template extends xmlTemplate {
|
||||
$js_match_attr = $match_attr;
|
||||
$match_attr = $js_match_attr.'xx'.$varcount[$match_attr];
|
||||
|
||||
- $formula = preg_replace('/%'.$js_match_attr.'([|\/%])/i','%'.$match_attr.'$1',$formula,1);
|
||||
+ $formula = preg_replace('/%'.$js_match_attr.'([|\/%])/i','%'.$match_attr.'$1',$formula,is_null(1)? "":1);
|
||||
|
||||
$attribute->js['autoFill'] .= sprintf(" var %s;\n",$match_attr);
|
||||
$attribute->js['autoFill'] .= sprintf(
|
||||
@@ -1216,7 +1216,7 @@ class Template extends xmlTemplate {
|
||||
$elem_id++;
|
||||
|
||||
if (strstr($match_mod,'k')) {
|
||||
- preg_match_all('/([0-9]+)/',trim($match_subst),$substrarray);
|
||||
+ preg_match_all('/([0-9]+)/',trim((string) $match_subst),$substrarray);
|
||||
if (isset($substrarray[1][0])) {
|
||||
$tok_idx = $substrarray[1][0];
|
||||
} else {
|
||||
@@ -1225,7 +1225,7 @@ class Template extends xmlTemplate {
|
||||
$attribute->js['autoFill'] .= sprintf(" %s = %s.split(':')[%s];\n",$match_attr,$match_attr,$tok_idx);
|
||||
|
||||
} elseif (strstr($match_mod,'K')) {
|
||||
- preg_match_all('/([0-9]+)/',trim($match_subst),$substrarray);
|
||||
+ preg_match_all('/([0-9]+)/',trim((string) $match_subst),$substrarray);
|
||||
if (isset($substrarray[1][0])) {
|
||||
$tok_idx = $substrarray[1][0];
|
||||
} else {
|
||||
@@ -1240,7 +1240,7 @@ class Template extends xmlTemplate {
|
||||
$attribute->js['autoFill'] .= sprintf(" %s = %s.split('%s')[%s];\n",$match_attr,$match_attr,$delimiter,$tok_idx);
|
||||
|
||||
} else {
|
||||
- preg_match_all('/([0-9]*)-([0-9]*)/',trim($match_subst),$substrarray);
|
||||
+ preg_match_all('/([0-9]*)-([0-9]*)/',trim((string) $match_subst),$substrarray);
|
||||
if ((isset($substrarray[1][0]) && $substrarray[1][0]) || (isset($substrarray[2][0]) && $substrarray[2][0])) {
|
||||
$attribute->js['autoFill'] .= sprintf(" %s = %s.substr(%s,%s);\n",
|
||||
$match_attr,$match_attr,
|
||||
@@ -1260,19 +1260,19 @@ class Template extends xmlTemplate {
|
||||
}
|
||||
|
||||
# Matchfor only entry without modifiers.
|
||||
- $formula = preg_replace('/^%('.$match_attr.')%$/U','$1 + \'\'',$formula);
|
||||
+ $formula = preg_replace('/^%('.$match_attr.')%$/U','$1 + \'\'',is_null($formula)? "":$formula);
|
||||
# Matchfor only entry with modifiers.
|
||||
- $formula = preg_replace('/^%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%$/U','$1 + \'\'',$formula);
|
||||
+ $formula = preg_replace('/^%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%$/U','$1 + \'\'',is_null($formula)? "":$formula);
|
||||
# Matchfor begining entry.
|
||||
- $formula = preg_replace('/^%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%/U','$1 + \'',$formula);
|
||||
+ $formula = preg_replace('/^%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%/U','$1 + \'',is_null($formula)? "":$formula);
|
||||
# Matchfor ending entry.
|
||||
- $formula = preg_replace('/%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%$/U','\' + $1 ',$formula);
|
||||
+ $formula = preg_replace('/%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%$/U','\' + $1 ',is_null($formula)? "":$formula);
|
||||
# Match for entries not at begin/end.
|
||||
- $formula = preg_replace('/%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%/U','\' + $1 + \'',$formula);
|
||||
+ $formula = preg_replace('/%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?(?:\|(.))?%/U','\' + $1 + \'',is_null($formula)? "":$formula);
|
||||
$attribute->js['autoFill'] .= "\n";
|
||||
}
|
||||
|
||||
- $attribute->js['autoFill'] .= sprintf(" fillRec(pre+'%s'+suf, %s); // %s\n",strtolower($attr),$formula,$string);
|
||||
+ $attribute->js['autoFill'] .= sprintf(" fillRec(pre+'%s'+suf, %s); // %s\n",strtolower((string) $attr),$formula,$string);
|
||||
$attribute->js['autoFill'] .= "\n";
|
||||
break;
|
||||
|
||||
@@ -1333,7 +1333,7 @@ class Template extends xmlTemplate {
|
||||
$this->setMinValueCount($sattr->getName(),1);
|
||||
|
||||
# We need to mark the attributes as show, except for the objectclass attribute.
|
||||
- if (strcasecmp('objectClass',$objectclassattr) != 0) {
|
||||
+ if (strcasecmp('objectClass',(string) $objectclassattr) != 0) {
|
||||
$attribute = $this->getAttribute($sattr->getName());
|
||||
$attribute->show();
|
||||
}
|
99
net/phpldapadmin/files/patch-lib_TemplateRender.php
Normal file
99
net/phpldapadmin/files/patch-lib_TemplateRender.php
Normal file
|
@ -0,0 +1,99 @@
|
|||
--- lib/TemplateRender.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/TemplateRender.php
|
||||
@@ -291,8 +291,8 @@ class TemplateRender extends PageRender {
|
||||
$formvalues = array_change_key_case($_REQUEST['form']);
|
||||
|
||||
foreach ($filtermatchall[1] as $arg) {
|
||||
- $value = $formvalues[strtolower($arg)];
|
||||
- $args[1] = preg_replace("/%($arg)(\|.+)?(\/[lU])?%/U",$value,$args[1]);
|
||||
+ $value = $formvalues[strtolower((string) $arg)];
|
||||
+ $args[1] = preg_replace("/%($arg)(\|.+)?(\/[lU])?%/U",$value,is_null($args[1])? "":$args[1]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ class TemplateRender extends PageRender {
|
||||
$fixedvalue = preg_split('/=\>/',$fixedvalue);
|
||||
$displayvalue = explode('=',$fixedvalue[1]);
|
||||
|
||||
- $newvalue[trim($fixedvalue[0])] = array($args[2]=>trim($fixedvalue[0]),trim($displayvalue[0])=>trim($displayvalue[1]));
|
||||
+ $newvalue[trim((string) $fixedvalue[0])] = array($args[2]=>trim((string) $fixedvalue[0]),trim((string) $displayvalue[0])=>trim((string) $displayvalue[1]));
|
||||
|
||||
$picklistvalues = array_merge($picklistvalues,$newvalue);
|
||||
}
|
||||
@@ -353,7 +353,7 @@ class TemplateRender extends PageRender {
|
||||
if (function_exists('mb_convert_case'))
|
||||
$disp_val = mb_convert_case($disp_val,MB_CASE_LOWER,'utf-8');
|
||||
else
|
||||
- $disp_val = strtolower($disp_val);
|
||||
+ $disp_val = strtolower((string) $disp_val);
|
||||
|
||||
break;
|
||||
|
||||
@@ -380,11 +380,11 @@ class TemplateRender extends PageRender {
|
||||
}
|
||||
|
||||
# make value a substring of
|
||||
- preg_match_all('/^\|([0-9]*)-([0-9]*)$/',trim($matchall[2][$key]),$substrarray);
|
||||
+ preg_match_all('/^\|([0-9]*)-([0-9]*)$/',trim((string) $matchall[2][$key]),$substrarray);
|
||||
|
||||
if ((isset($substrarray[1][0]) && $substrarray[1][0]) || (isset($substrarray[2][0]) && $substrarray[2][0])) {
|
||||
$begin = $substrarray[1][0] ? $substrarray[1][0] : '0';
|
||||
- $end = $substrarray[2][0] ? $substrarray[2][0] : strlen($disp_val);
|
||||
+ $end = $substrarray[2][0] ? $substrarray[2][0] : strlen((string) $disp_val);
|
||||
|
||||
if (function_exists('mb_substr'))
|
||||
$disp_val = mb_substr($disp_val,$begin,$end,'utf-8');
|
||||
@@ -392,7 +392,7 @@ class TemplateRender extends PageRender {
|
||||
$disp_val = substr($disp_val,$begin,$end);
|
||||
}
|
||||
|
||||
- $display = preg_replace("/%($arg)(\|.+)?(\/[lUC])?%/U",$disp_val,$display);
|
||||
+ $display = preg_replace("/%($arg)(\|.+)?(\/[lUC])?%/U",$disp_val,is_null($display)? "":$display);
|
||||
}
|
||||
|
||||
if (! isset($picklist[$values[$args[2]]])) {
|
||||
@@ -1347,7 +1347,7 @@ class TemplateRender extends PageRender {
|
||||
echo '<td><select name="new_values[objectclass][]" multiple="multiple" size="15">';
|
||||
|
||||
foreach ($socs as $name => $oclass) {
|
||||
- if (! strcasecmp('top',$name))
|
||||
+ if (! strcasecmp('top',(string) $name))
|
||||
continue;
|
||||
|
||||
printf('<option %s value="%s">%s</option>',
|
||||
@@ -1879,7 +1879,7 @@ function fillRec(id,value) {
|
||||
protected function drawDnValueIconAttribute($attribute,$val) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
- if (strlen($val) <= 0)
|
||||
+ if (strlen((string) $val) <= 0)
|
||||
printf('<img src="%s/ldap-alias.png" alt="Go" style="float: right;" /> ',IMGDIR);
|
||||
elseif ($this->getServer()->dnExists($val))
|
||||
printf('<a href="cmd.php?cmd=template_engine&server_id=%s&dn=%s" title="%s %s"><img src="%s/ldap-alias.png" alt="Go" /></a> ',
|
||||
@@ -1892,7 +1892,7 @@ function fillRec(id,value) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$img = sprintf('<img src="%s/mail.png" alt="%s" style="float: right;" />',IMGDIR,_('Mail'));
|
||||
- if (strlen($val) <= 0)
|
||||
+ if (strlen((string) $val) <= 0)
|
||||
echo $img;
|
||||
else
|
||||
printf('<a href="mailto:%s">%s</a>',htmlspecialchars($val),$img);
|
||||
@@ -1905,7 +1905,7 @@ function fillRec(id,value) {
|
||||
$img = sprintf('<img src="%s/ldap-dc.png" alt="%s" style="float: right;" />',IMGDIR,_('URL'));
|
||||
$url = explode(' +',$val,2);
|
||||
|
||||
- if (strlen($val) <= 0)
|
||||
+ if (strlen((string) $val) <= 0)
|
||||
echo $img;
|
||||
else
|
||||
printf('<a href="%s" onclick="target=\'new\';">%s</a>',htmlspecialchars($url[0]),$img);
|
||||
@@ -2387,7 +2387,7 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
if (! $_SESSION[APPCONFIG]->getValue('appearance','show_schema_link') || !$_SESSION[APPCONFIG]->isCommandAvailable('script','schema'))
|
||||
return;
|
||||
|
||||
- if (strlen($val) > 0) {
|
||||
+ if (strlen((string) $val) > 0) {
|
||||
$href = sprintf('cmd.php?cmd=schema&server_id=%s&view=objectclasses&viewvalue=%s',
|
||||
$this->getServerID(),$val);
|
||||
printf('<a href="%s" title="%s"><img src="%s/info.png" alt="Info" /></a> ',
|
|
@ -1,11 +1,20 @@
|
|||
--- lib/Tree.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/Tree.php
|
||||
@@ -68,7 +68,7 @@ abstract class Tree {
|
||||
}
|
||||
}
|
||||
@@ -132,7 +132,7 @@ abstract class Tree {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- set_cached_item($server_id,'tree','null',$tree);
|
||||
+ set_cached_item($server_id,$tree,'tree','null');
|
||||
}
|
||||
- $index = strtolower(implode(',',pla_explode_dn($dn)));
|
||||
+ $index = strtolower((string) implode(',',pla_explode_dn($dn)));
|
||||
|
||||
return $tree;
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Result (%s)',1,0,__FILE__,__LINE__,__METHOD__,$index);
|
||||
@@ -185,7 +185,7 @@ abstract class Tree {
|
||||
$tree_factory = new TreeItem($server->getIndex(),$dn);
|
||||
$tree_factory->setObjectClasses($server->getDNAttrValue($dn,'objectClass'));
|
||||
|
||||
- if ((($isleaf = $server->getDNAttrValue($dn,'hassubordinates')) && ! strcasecmp($isleaf[0],'false')))
|
||||
+ if ((($isleaf = $server->getDNAttrValue($dn,'hassubordinates')) && ! strcasecmp((string) $isleaf[0],'false')))
|
||||
$tree_factory->setLeaf();
|
||||
|
||||
$this->entries[$dnlower] = $tree_factory;
|
||||
|
|
11
net/phpldapadmin/files/patch-lib_TreeItem.php
Normal file
11
net/phpldapadmin/files/patch-lib_TreeItem.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- lib/TreeItem.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/TreeItem.php
|
||||
@@ -59,7 +59,7 @@ class TreeItem {
|
||||
}
|
||||
|
||||
public function getDNEncode() {
|
||||
- return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn));
|
||||
+ return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",is_null($this->dn)? "":$this->dn));
|
||||
}
|
||||
|
||||
/**
|
|
@ -1,13 +1,14 @@
|
|||
--- lib/common.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/common.php
|
||||
@@ -296,7 +296,9 @@ if ($app['language'] == 'auto') {
|
||||
* Strip slashes from GET, POST, and COOKIE variables if this
|
||||
* PHP install is configured to automatically addslashes()
|
||||
*/
|
||||
-if (@get_magic_quotes_gpc() && (! isset($slashes_stripped) || ! $slashes_stripped)) {
|
||||
+if (@version_compare(phpversion(), '5.4.0', '<') &&
|
||||
+ @get_magic_quotes_gpc() &&
|
||||
+ (!isset($slashes_stripped) || !$slashes_stripped)) {
|
||||
array_stripslashes($_REQUEST);
|
||||
array_stripslashes($_GET);
|
||||
array_stripslashes($_POST);
|
||||
@@ -247,9 +247,9 @@ if ($app['language'] == 'auto') {
|
||||
|
||||
$value = preg_split('/[-]+/',$value);
|
||||
if (sizeof($value) == 2)
|
||||
- $app['lang_http'][$key] = strtolower($value[0]).'_'.strtoupper($value[1]);
|
||||
+ $app['lang_http'][$key] = strtolower((string) $value[0]).'_'.strtoupper($value[1]);
|
||||
else
|
||||
- $app['lang_http'][$key] = auto_lang(strtolower($value[0]));
|
||||
+ $app['lang_http'][$key] = auto_lang(strtolower((string) $value[0]));
|
||||
}
|
||||
|
||||
$app['lang_http'] = array_unique($app['lang_http']);
|
||||
|
|
29
net/phpldapadmin/files/patch-lib_ds.php
Normal file
29
net/phpldapadmin/files/patch-lib_ds.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
--- lib/ds.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/ds.php
|
||||
@@ -371,7 +371,7 @@ abstract class DS {
|
||||
$replacement = $this->getValue('login', 'sasl_dn_replacement');
|
||||
|
||||
if ($regex && $replacement) {
|
||||
- $userDN = preg_replace($regex, $replacement, $_SERVER['REMOTE_USER']);
|
||||
+ $userDN = preg_replace($regex, $replacement,is_null( $_SERVER['REMOTE_USER'])? "": $_SERVER['REMOTE_USER']);
|
||||
|
||||
$CACHE[$this->index][$method] = $this->login($userDN, '', $method);
|
||||
|
||||
@@ -437,7 +437,7 @@ abstract class DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- if (! trim($this->getLogin(null)) && $_SESSION[APPCONFIG]->getValue('appearance','anonymous_bind_implies_read_only'))
|
||||
+ if (! trim((string) $this->getLogin(null)) && $_SESSION[APPCONFIG]->getValue('appearance','anonymous_bind_implies_read_only'))
|
||||
return true;
|
||||
else
|
||||
return $this->getValue('server','read_only');
|
||||
@@ -691,7 +691,7 @@ class Datastore {
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
# If no index defined, then pick the lowest one.
|
||||
- if (is_null($index) || ! trim($index) || ! is_numeric($index))
|
||||
+ if (is_null($index) || ! trim((string) $index) || ! is_numeric($index))
|
||||
$index = min($this->GetServerList())->getIndex();
|
||||
|
||||
if (! isset($this->objects[$index]))
|
|
@ -1,38 +1,459 @@
|
|||
--- lib/ds_ldap.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/ds_ldap.php
|
||||
@@ -1768,7 +1768,7 @@ class ldap extends DS {
|
||||
ksort($return);
|
||||
@@ -206,6 +206,7 @@ class ldap extends DS {
|
||||
|
||||
# cache the schema to prevent multiple schema fetches from LDAP server
|
||||
- set_cached_item($this->index,'schema','objectclasses',$return);
|
||||
+ set_cached_item($this->index,$return,'schema','objectclasses');
|
||||
if ($this->getValue('server','port'))
|
||||
$resource = ldap_connect($this->getValue('server','host'),$this->getValue('server','port'));
|
||||
+
|
||||
else
|
||||
$resource = ldap_connect($this->getValue('server','host'));
|
||||
|
||||
@@ -216,7 +217,8 @@ class ldap extends DS {
|
||||
debug_log('LDAP Resource [%s], Host [%s], Port [%s]',16,0,__FILE__,__LINE__,__METHOD__,
|
||||
$resource,$this->getValue('server','host'),$this->getValue('server','port'));
|
||||
|
||||
- if (! is_resource($resource))
|
||||
+ // if (! is_resource($resource))
|
||||
+ if ( !$resource )
|
||||
debug_dump_backtrace('UNHANDLED, $resource is not a resource',1);
|
||||
|
||||
# Go with LDAP version 3 if possible (needed for renaming and Novell schema fetching)
|
||||
@@ -328,7 +330,7 @@ class ldap extends DS {
|
||||
}
|
||||
}
|
||||
|
||||
- if (! $this->isAnonBindAllowed() && ! trim($userDN))
|
||||
+ if (! $this->isAnonBindAllowed() && ! trim((string) $userDN))
|
||||
return false;
|
||||
|
||||
# Temporarily set our user details
|
||||
@@ -337,7 +339,7 @@ class ldap extends DS {
|
||||
$connect = $this->connect($method,false,$new);
|
||||
|
||||
# If we didnt log in...
|
||||
- if (! is_resource($connect) || $this->noconnect || ! $this->userIsAllowedLogin($userDN)) {
|
||||
+ if (!$connect || $this->noconnect || ! $this->userIsAllowedLogin($userDN)) {
|
||||
$this->logout($method);
|
||||
|
||||
return false;
|
||||
@@ -565,11 +567,11 @@ class ldap extends DS {
|
||||
|
||||
private function fillDNTemplate($user) {
|
||||
foreach($this->getLoginBaseDN() as $base)
|
||||
- if(substr_compare($user, $base, -strlen($base)) === 0)
|
||||
+ if(substr_compare($user, $base, -strlen((string) $base)) === 0)
|
||||
return $user; // $user already passed as DN
|
||||
|
||||
// fill template
|
||||
- return sprintf($this->getValue('login', 'bind_dn_template'), preg_replace('/([,\\\\#+<>;"=])/', '\\\\$1', $user));
|
||||
+ return sprintf($this->getValue('login', 'bind_dn_template'), preg_replace('/([,\\\\#+<>;"=])/', '\\\\$1',is_null( $user)? "": $user));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -684,7 +686,7 @@ class ldap extends DS {
|
||||
|
||||
if (! in_array($this->getValue('login','auth_type'), array('sasl','sasl_external'))) {
|
||||
// check if SASL mech uses login from other auth_types
|
||||
- if (! in_array(strtolower($this->getValue('sasl', 'mech')), array('plain')))
|
||||
+ if (! in_array(strtolower((string) $this->getValue('sasl', 'mech')), array('plain')))
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -722,7 +724,7 @@ class ldap extends DS {
|
||||
}
|
||||
|
||||
# At the moment, we have only implemented GSSAPI and PLAIN
|
||||
- if (! in_array(strtolower($this->getValue('sasl','mech')),array('gssapi','plain'))) {
|
||||
+ if (! in_array(strtolower((string) $this->getValue('sasl','mech')),array('gssapi','plain'))) {
|
||||
system_message(array(
|
||||
'title'=>_('SASL Method not implemented'),
|
||||
'body'=>sprintf('<b>%s</b>: %s %s',_('Error'),$this->getValue('sasl','mech'),_('has not been implemented yet')),
|
||||
@@ -731,7 +733,7 @@ class ldap extends DS {
|
||||
return false;
|
||||
}
|
||||
|
||||
- if (strtolower($this->getValue('sasl','mech')) == 'plain') {
|
||||
+ if (strtolower((string) $this->getValue('sasl','mech')) == 'plain') {
|
||||
return @ldap_sasl_bind($resource,NULL,$pass,'PLAIN',
|
||||
$this->getValue('sasl','realm'),
|
||||
$login,
|
||||
@@ -746,14 +748,15 @@ class ldap extends DS {
|
||||
/*
|
||||
# Do we need to rewrite authz_id?
|
||||
if (! isset($CACHE['authz_id']))
|
||||
- if (! trim($this->getValue('sasl','authz_id')) && strtolower($this->getValue('sasl','mech')) != 'gssapi') {
|
||||
+ if (! trim((string) $this->getValue('sasl','authz_id')) && strtolower((string) $this->getValue('sasl','mech')) != 'gssapi') {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Rewriting bind DN [%s] -> authz_id with regex [%s] and replacement [%s].',9,0,__FILE__,__LINE__,__METHOD__,
|
||||
$CACHE['login_dn'],
|
||||
$this->getValue('sasl','authz_id_regex'),
|
||||
$this->getValue('sasl','authz_id_replacement'));
|
||||
|
||||
- $CACHE['authz_id'] = @preg_replace($this->getValue('sasl','authz_id_regex'),
|
||||
+ $CACHE['authz_id'] = @preg_replace($this->getValue('sasl','authz_id_regex'),is_null(
|
||||
+)? "":
|
||||
$this->getValue('sasl','authz_id_replacement'),$CACHE['login_dn']);
|
||||
|
||||
# Invalid regex?
|
||||
@@ -1212,14 +1215,14 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- if (! trim($dn))
|
||||
+ if (! trim((string) $dn))
|
||||
return $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)
|
||||
@@ -1953,7 +1953,7 @@ class ldap extends DS {
|
||||
debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$dn);
|
||||
@@ -1237,12 +1240,12 @@ class ldap extends DS {
|
||||
if (is_array($dn)) {
|
||||
$a = array();
|
||||
foreach ($dn as $key => $rdn) {
|
||||
- $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function($m) { return chr(hexdec($m[1])); }, $rdn);
|
||||
+ $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function($m) { return chr(hexdec($m[1])); },is_null( $rdn)? "": $rdn);
|
||||
}
|
||||
return $a;
|
||||
|
||||
} else {
|
||||
- return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function($m) { return chr(hexdec($m[1])); }, $dn);
|
||||
+ return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function($m) { return chr(hexdec($m[1])); },is_null( $dn)? "": $dn);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1388,7 +1391,7 @@ class ldap extends DS {
|
||||
return false;
|
||||
|
||||
# error checking
|
||||
- $schema_to_fetch = strtolower($schema_to_fetch);
|
||||
+ $schema_to_fetch = strtolower((string) $schema_to_fetch);
|
||||
|
||||
if (! is_null($this->_schema_entries) && isset($this->_schema_entries[$schema_to_fetch])) {
|
||||
$schema = $this->_schema_entries[$schema_to_fetch];
|
||||
@@ -1408,7 +1411,7 @@ class ldap extends DS {
|
||||
$schema_dn = $this->getSchemaDN($method,$dn);
|
||||
|
||||
# Do we need to try again with the Root DSE?
|
||||
- if (! $schema_dn && trim($dn))
|
||||
+ if (! $schema_dn && trim((string) $dn))
|
||||
$schema_dn = $this->getSchemaDN($method,'');
|
||||
|
||||
# Store the eventual schema retrieval in $schema_search
|
||||
@@ -1609,7 +1612,7 @@ class ldap extends DS {
|
||||
foreach ($entry[$olc_schema] as $schema_definition)
|
||||
/* Schema definitions in child nodes prefix the schema entries with "{n}"
|
||||
the preg_replace call strips out this prefix. */
|
||||
- $schema[] = preg_replace('/^\{\d*\}\(/','(',$schema_definition);
|
||||
+ $schema[] = preg_replace('/^\{\d*\}\(/','(',is_null($schema_definition)? "":$schema_definition);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1672,7 +1675,7 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- $oclass_name = strtolower($oclass_name);
|
||||
+ $oclass_name = strtolower((string) $oclass_name);
|
||||
$socs = $this->SchemaObjectClasses($method,$dn);
|
||||
|
||||
# Default return value
|
||||
@@ -1703,7 +1706,7 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- $attr_name = strtolower($attr_name);
|
||||
+ $attr_name = strtolower((string) $attr_name);
|
||||
$sattrs = $this->SchemaAttributes($method,$dn);
|
||||
|
||||
# Default return value
|
||||
@@ -1752,7 +1755,7 @@ class ldap extends DS {
|
||||
$return = array();
|
||||
|
||||
foreach ($raw as $line) {
|
||||
- if (is_null($line) || ! strlen($line))
|
||||
+ if (is_null($line) || ! strlen((string) $line))
|
||||
continue;
|
||||
|
||||
$object_class = new ObjectClass($line,$this);
|
||||
@@ -1762,8 +1765,8 @@ class ldap extends DS {
|
||||
# Now go through and reference the parent/child relationships
|
||||
foreach ($return as $oclass)
|
||||
foreach ($oclass->getSupClasses() as $parent_name)
|
||||
- if (isset($return[strtolower($parent_name)]))
|
||||
- $return[strtolower($parent_name)]->addChildObjectClass($oclass->getName(false));
|
||||
+ if (isset($return[strtolower((string) $parent_name)]))
|
||||
+ $return[strtolower((string) $parent_name)]->addChildObjectClass($oclass->getName(false));
|
||||
|
||||
ksort($return);
|
||||
|
||||
@@ -1816,7 +1819,7 @@ class ldap extends DS {
|
||||
*/
|
||||
$attrs_oid = array();
|
||||
foreach ($raw as $line) {
|
||||
- if (is_null($line) || ! strlen($line))
|
||||
+ if (is_null($line) || ! strlen((string) $line))
|
||||
continue;
|
||||
|
||||
$attr = new AttributeType($line);
|
||||
@@ -1847,7 +1850,7 @@ class ldap extends DS {
|
||||
$new_attr->setName($alias_attr_name);
|
||||
$new_attr->addAlias($attr->getName(false));
|
||||
$new_attr->removeAlias($alias_attr_name);
|
||||
- $new_attr_key = strtolower($alias_attr_name);
|
||||
+ $new_attr_key = strtolower((string) $alias_attr_name);
|
||||
$attrs[$new_attr_key] = $new_attr;
|
||||
}
|
||||
}
|
||||
@@ -1858,7 +1861,7 @@ class ldap extends DS {
|
||||
$sup_attr_name = $attr->getSupAttribute();
|
||||
$sup_attr = null;
|
||||
|
||||
- if (trim($sup_attr_name)) {
|
||||
+ if (trim((string) $sup_attr_name)) {
|
||||
|
||||
/* This loop really should traverse infinite levels of inheritance (SUP) for attributeTypes,
|
||||
* but just in case we get carried away, stop at 100. This shouldn't happen, but for
|
||||
@@ -1871,17 +1874,17 @@ class ldap extends DS {
|
||||
$sup_attr_name = $attr->getSupAttribute();
|
||||
}
|
||||
|
||||
- if (! isset($attrs[strtolower($sup_attr_name)])){
|
||||
+ if (! isset($attrs[strtolower((string) $sup_attr_name)])){
|
||||
error(sprintf('Schema error: attributeType "%s" inherits from "%s", but attributeType "%s" does not exist.',
|
||||
$attr->getName(),$sup_attr_name,$sup_attr_name),'error','index.php');
|
||||
return;
|
||||
}
|
||||
|
||||
- $sup_attr = $attrs[strtolower($sup_attr_name)];
|
||||
+ $sup_attr = $attrs[strtolower((string) $sup_attr_name)];
|
||||
$sup_attr_name = $sup_attr->getSupAttribute();
|
||||
|
||||
# Does this superior attributeType not have a superior attributeType?
|
||||
- if (is_null($sup_attr_name) || strlen(trim($sup_attr_name)) == 0) {
|
||||
+ if (is_null($sup_attr_name) || strlen((string) trim((string) $sup_attr_name)) == 0) {
|
||||
|
||||
/* Since this attribute's superior attribute does not have another superior
|
||||
* attribute, clone its properties for this attribute. Then, replace
|
||||
@@ -1936,18 +1939,18 @@ class ldap extends DS {
|
||||
|
||||
# Add Used In.
|
||||
foreach ($oclass_attrs as $attr_name)
|
||||
- if (isset($attrs[strtolower($attr_name)]))
|
||||
- $attrs[strtolower($attr_name)]->addUsedInObjectClass($object_class->getName(false));
|
||||
+ if (isset($attrs[strtolower((string) $attr_name)]))
|
||||
+ $attrs[strtolower((string) $attr_name)]->addUsedInObjectClass($object_class->getName(false));
|
||||
|
||||
# Add Required By.
|
||||
foreach ($must_attrs as $attr_name)
|
||||
- if (isset($attrs[strtolower($attr_name)]))
|
||||
- $attrs[strtolower($attr_name)]->addRequiredByObjectClass($object_class->getName(false));
|
||||
+ if (isset($attrs[strtolower((string) $attr_name)]))
|
||||
+ $attrs[strtolower((string) $attr_name)]->addRequiredByObjectClass($object_class->getName(false));
|
||||
|
||||
# Force May
|
||||
foreach ($object_class->getForceMayAttrs() as $attr_name)
|
||||
- if (isset($attrs[strtolower($attr_name->name)]))
|
||||
- $attrs[strtolower($attr_name->name)]->setForceMay();
|
||||
+ if (isset($attrs[strtolower((string) $attr_name->name)]))
|
||||
+ $attrs[strtolower((string) $attr_name->name)]->setForceMay();
|
||||
}
|
||||
|
||||
$return = $attrs;
|
||||
@@ -1987,7 +1990,7 @@ class ldap extends DS {
|
||||
$rules = array();
|
||||
|
||||
# cache the schema to prevent multiple schema fetches from LDAP server
|
||||
- set_cached_item($this->index,'schema','attributes',$return);
|
||||
+ set_cached_item($this->index,$return,'schema','attributes');
|
||||
foreach ($raw as $line) {
|
||||
- if (is_null($line) || ! strlen($line))
|
||||
+ if (is_null($line) || ! strlen((string) $line))
|
||||
continue;
|
||||
|
||||
$rule = new MatchingRule($line);
|
||||
@@ -2003,7 +2006,7 @@ class ldap extends DS {
|
||||
|
||||
if ($raw != false) {
|
||||
foreach ($raw as $line) {
|
||||
- if (is_null($line) || ! strlen($line))
|
||||
+ if (is_null($line) || ! strlen((string) $line))
|
||||
continue;
|
||||
|
||||
$rule_use = new MatchingRuleUse($line);
|
||||
@@ -2019,7 +2022,7 @@ class ldap extends DS {
|
||||
$sattrs = $this->SchemaAttributes($method,$dn);
|
||||
if (is_array($sattrs))
|
||||
foreach ($sattrs as $attr) {
|
||||
- $rule_key = strtolower($attr->getEquality());
|
||||
+ $rule_key = strtolower((string) $attr->getEquality());
|
||||
|
||||
if (isset($rules[$rule_key]))
|
||||
$rules[$rule_key]->addUsedByAttr($attr->getName(false));
|
||||
@@ -2063,11 +2066,11 @@ class ldap extends DS {
|
||||
$return = array();
|
||||
|
||||
foreach ($raw as $line) {
|
||||
- if (is_null($line) || ! strlen($line))
|
||||
+ if (is_null($line) || ! strlen((string) $line))
|
||||
continue;
|
||||
|
||||
$syntax = new Syntax($line);
|
||||
- $key = strtolower(trim($syntax->getOID()));
|
||||
+ $key = strtolower((string) trim((string) $syntax->getOID()));
|
||||
|
||||
if (! $key)
|
||||
continue;
|
||||
@@ -2097,7 +2100,7 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- return in_array($attr_name,unserialize(strtolower(serialize($this->getValue('server','force_may')))));
|
||||
+ return in_array($attr_name,unserialize(strtolower((string) serialize($this->getValue('server','force_may')))));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2133,7 +2136,7 @@ class ldap extends DS {
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
# Ensure our attr is in lowercase
|
||||
- $attr = strtolower($attr);
|
||||
+ $attr = strtolower((string) $attr);
|
||||
|
||||
$values = $this->getDNAttrValues($dn,$method,$deref);
|
||||
|
||||
@@ -2247,7 +2250,7 @@ class ldap extends DS {
|
||||
# Simple test first
|
||||
$dn_attrs = array('aliasedObjectName');
|
||||
foreach ($dn_attrs as $dn_attr)
|
||||
- if (strcasecmp($attr_name,$dn_attr) == 0)
|
||||
+ if (strcasecmp((string) $attr_name,(string) $dn_attr) == 0)
|
||||
return true;
|
||||
|
||||
# Now look at the schema OID
|
||||
@@ -2266,7 +2269,7 @@ class ldap extends DS {
|
||||
return false;
|
||||
|
||||
$syntax_desc = $syntaxes[ $syntax_oid ]->getDescription();
|
||||
- if (strpos(strtolower($syntax_desc),'distinguished name'))
|
||||
+ if (strpos(strtolower((string) $syntax_desc),'distinguished name'))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -2286,7 +2289,7 @@ class ldap extends DS {
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
# easy quick check
|
||||
- if (! strcasecmp($attr_name,'jpegPhoto') || ! strcasecmp($attr_name,'photo'))
|
||||
+ if (! strcasecmp((string) $attr_name,'jpegPhoto') || ! strcasecmp((string) $attr_name,'photo'))
|
||||
return true;
|
||||
|
||||
# go to the schema and get the Syntax OID
|
||||
@@ -2297,7 +2300,7 @@ class ldap extends DS {
|
||||
$oid = $sattr->getSyntaxOID();
|
||||
$type = $sattr->getType();
|
||||
|
||||
- if (! strcasecmp($type,'JPEG') || ($oid == '1.3.6.1.4.1.1466.115.121.1.28'))
|
||||
+ if (! strcasecmp((string) $type,'JPEG') || ((string) $oid == '1.3.6.1.4.1.1466.115.121.1.28'))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -2318,9 +2321,9 @@ class ldap extends DS {
|
||||
|
||||
$type = ($sattr = $this->getSchemaAttribute($attr_name)) ? $sattr->getType() : null;
|
||||
|
||||
- if (! strcasecmp('boolean',$type) ||
|
||||
- ! strcasecmp('isCriticalSystemObject',$attr_name) ||
|
||||
- ! strcasecmp('showInAdvancedViewOnly',$attr_name))
|
||||
+ if (! strcasecmp('boolean',(string) $type) ||
|
||||
+ ! strcasecmp('isCriticalSystemObject',(string) $attr_name) ||
|
||||
+ ! strcasecmp('showInAdvancedViewOnly',(string) $attr_name))
|
||||
return true;
|
||||
|
||||
else
|
||||
@@ -2359,7 +2362,7 @@ class ldap extends DS {
|
||||
|
||||
static $attr_cache;
|
||||
|
||||
- $attr_name = strtolower($attr_name);
|
||||
+ $attr_name = strtolower((string) $attr_name);
|
||||
|
||||
if (isset($attr_cache[$this->index][$attr_name]))
|
||||
return $attr_cache[$this->index][$attr_name];
|
||||
@@ -2370,7 +2373,7 @@ class ldap extends DS {
|
||||
}
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
@@ -2029,7 +2029,7 @@ class ldap extends DS {
|
||||
$return = $rules;
|
||||
|
||||
# cache the schema to prevent multiple schema fetches from LDAP server
|
||||
- set_cached_item($this->index,'schema','matchingrules',$return);
|
||||
+ set_cached_item($this->index,$return,'schema','matchingrules');
|
||||
# Quick check: If the attr name ends in ";binary", then it's binary.
|
||||
- if (strcasecmp(substr($attr_name,strlen($attr_name) - 7),';binary') == 0) {
|
||||
+ if (strcasecmp(substr((string) $attr_name,strlen((string) (string) $attr_name) - 7),';binary') == 0) {
|
||||
$attr_cache[$this->index][$attr_name] = true;
|
||||
return true;
|
||||
}
|
||||
@@ -2389,17 +2392,17 @@ class ldap extends DS {
|
||||
$syntax = $sattr->getSyntaxOID();
|
||||
}
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
@@ -2078,7 +2078,7 @@ class ldap extends DS {
|
||||
ksort($return);
|
||||
- if (strcasecmp($type,'Certificate') == 0 ||
|
||||
- strcasecmp($type,'Binary') == 0 ||
|
||||
- strcasecmp($attr_name,'usercertificate') == 0 ||
|
||||
- strcasecmp($attr_name,'usersmimecertificate') == 0 ||
|
||||
- strcasecmp($attr_name,'networkaddress') == 0 ||
|
||||
- strcasecmp($attr_name,'objectGUID') == 0 ||
|
||||
- strcasecmp($attr_name,'objectSID') == 0 ||
|
||||
- strcasecmp($attr_name,'auditingPolicy') == 0 ||
|
||||
- strcasecmp($attr_name,'jpegPhoto') == 0 ||
|
||||
- strcasecmp($attr_name,'krbExtraData') == 0 ||
|
||||
- strcasecmp($attr_name,'krbPrincipalKey') == 0 ||
|
||||
+ if (strcasecmp((string) $type,'Certificate') == 0 ||
|
||||
+ strcasecmp((string) $type,'Binary') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'usercertificate') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'usersmimecertificate') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'networkaddress') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'objectGUID') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'objectSID') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'auditingPolicy') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'jpegPhoto') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'krbExtraData') == 0 ||
|
||||
+ strcasecmp((string) $attr_name,'krbPrincipalKey') == 0 ||
|
||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.10' ||
|
||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.28' ||
|
||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.5' ||
|
||||
@@ -2428,7 +2431,7 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
# cache the schema to prevent multiple schema fetches from LDAP server
|
||||
- set_cached_item($this->index,'schema','syntaxes',$return);
|
||||
+ set_cached_item($this->index,$return,'schema','syntaxes');
|
||||
}
|
||||
- $user = strtolower($user);
|
||||
+ $user = strtolower((string) $user);
|
||||
$group = $this->getDNAttrValues($group);
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
# If you are using groupOfNames objectClass
|
||||
@@ -2459,7 +2462,7 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
- $dn = trim(strtolower($dn));
|
||||
+ $dn = trim((string) strtolower((string) $dn));
|
||||
|
||||
if (! $this->getValue('login','allowed_dns'))
|
||||
return true;
|
||||
@@ -2498,7 +2501,7 @@ class ldap extends DS {
|
||||
debug_log('Comparing with [%s]',80,0,__FILE__,__LINE__,__METHOD__,$result_dn);
|
||||
|
||||
# Check if $result_dn is a user DN
|
||||
- if (strcasecmp($dn,trim(strtolower($result_dn))) == 0)
|
||||
+ if (strcasecmp((string) $dn,trim((string) strtolower((string) (string) $result_dn))) == 0)
|
||||
return true;
|
||||
|
||||
# Check if $result_dn is a group DN
|
||||
@@ -2510,7 +2513,7 @@ class ldap extends DS {
|
||||
}
|
||||
|
||||
# Check if $login_allowed_dn is a user DN
|
||||
- if (strcasecmp($dn,trim(strtolower($login_allowed_dn))) == 0)
|
||||
+ if (strcasecmp((string) $dn,trim((string) strtolower((string) (string) $login_allowed_dn))) == 0)
|
||||
return true;
|
||||
|
||||
# Check if $login_allowed_dn is a group DN
|
||||
|
|
|
@ -1,29 +1,40 @@
|
|||
--- lib/ds_ldap_pla.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/ds_ldap_pla.php
|
||||
@@ -371,7 +371,7 @@ class ldap_pla extends ldap {
|
||||
@@ -248,7 +248,7 @@ class ldap_pla extends ldap {
|
||||
# Next, compare strictly by name first
|
||||
else
|
||||
foreach ($_SESSION[APPCONFIG]->getValue('appearance','multi_line_attributes') as $multi_line_attr_name)
|
||||
- if (strcasecmp($multi_line_attr_name,$attr_name) == 0) {
|
||||
+ if (strcasecmp((string) $multi_line_attr_name,(string) $attr_name) == 0) {
|
||||
$return = true;
|
||||
break;
|
||||
}
|
||||
@@ -285,8 +285,8 @@ class ldap_pla extends ldap {
|
||||
* @return boolean
|
||||
*/
|
||||
private function isAttrTest($attr,$attrs,$except_dn) {
|
||||
- $attr = trim($attr);
|
||||
- if (! trim($attr) || ! count($attrs))
|
||||
+ $attr = trim((string) $attr);
|
||||
+ if (! trim((string) $attr) || ! count($attrs))
|
||||
return false;
|
||||
|
||||
$tree->addEntry($dn);
|
||||
# Is the user excluded?
|
||||
@@ -294,7 +294,7 @@ class ldap_pla extends ldap {
|
||||
return false;
|
||||
|
||||
- set_cached_item($this->index,'tree','null',$tree);
|
||||
+ set_cached_item($this->index,$tree,'tree','null');
|
||||
foreach ($attrs as $attr_name)
|
||||
- if (strcasecmp($attr,trim($attr_name)) == 0)
|
||||
+ if (strcasecmp((string) $attr,trim((string) (string) $attr_name)) == 0)
|
||||
return true;
|
||||
|
||||
run_hook('post_entry_create',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attrs'=>$entry_array));
|
||||
|
||||
@@ -403,7 +403,7 @@ class ldap_pla extends ldap {
|
||||
$tree = get_cached_item($this->index,'tree');
|
||||
$tree->delEntry($dn);
|
||||
|
||||
- set_cached_item($this->index,'tree','null',$tree);
|
||||
+ set_cached_item($this->index,$tree,'tree','null');
|
||||
|
||||
run_hook('post_entry_delete',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn));
|
||||
}
|
||||
@@ -430,7 +430,7 @@ class ldap_pla extends ldap {
|
||||
$newdn = sprintf('%s,%s',$new_rdn,$container);
|
||||
$tree->renameEntry($dn,$newdn);
|
||||
|
||||
- set_cached_item($this->index,'tree','null',$tree);
|
||||
+ set_cached_item($this->index,$tree,'tree','null');
|
||||
|
||||
run_hook('post_entry_rename',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'rdn'=>$new_rdn,'container'=>$container));
|
||||
}
|
||||
return false;
|
||||
@@ -674,7 +674,7 @@ class ldap_pla extends ldap {
|
||||
if ($this->getValue('appearance', 'show_authz') && function_exists('ldap_exop_whoami')) {
|
||||
$result = @ldap_exop_whoami($this->connect($method));
|
||||
if ($result) // strip any dn: or u: prefix
|
||||
- $result = preg_replace('/^(u|dn):/i', '', $result);
|
||||
+ $result = preg_replace('/^(u|dn):/i', '',is_null( $result)? "": $result);
|
||||
else // fall back to login on error
|
||||
$result = $this->getLogin($method);
|
||||
return $result;
|
||||
|
|
46
net/phpldapadmin/files/patch-lib_export__functions.php
Normal file
46
net/phpldapadmin/files/patch-lib_export__functions.php
Normal file
|
@ -0,0 +1,46 @@
|
|||
--- lib/export_functions.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/export_functions.php
|
||||
@@ -131,7 +131,7 @@ abstract class Export {
|
||||
$query['size_limit'] = 0;
|
||||
$attrs = get_request('attributes','REQUEST');
|
||||
|
||||
- $attrs = preg_replace('/\s+/','',$attrs);
|
||||
+ $attrs = preg_replace('/\s+/','',is_null($attrs)? "":$attrs);
|
||||
if ($attrs)
|
||||
$query['attrs'] = explode(',',$attrs);
|
||||
else
|
||||
@@ -222,7 +222,7 @@ abstract class Export {
|
||||
* @return boolean true if the string is safe ascii, false otherwise.
|
||||
*/
|
||||
protected function isSafeAscii($str) {
|
||||
- for ($i=0;$i<strlen($str);$i++)
|
||||
+ for ($i=0;$i<strlen((string) $str);$i++)
|
||||
if (ord($str[$i]) < 32 || ord($str[$i]) > 127)
|
||||
return false;
|
||||
|
||||
@@ -478,7 +478,7 @@ class ExportLDIF extends Export {
|
||||
|
||||
$title_string = sprintf('# %s %s: %s%s',_('Entry'),$counter,$dn,$this->br);
|
||||
|
||||
- if (strlen($title_string) > $this->line_length-3)
|
||||
+ if (strlen((string) $title_string) > $this->line_length-3)
|
||||
$title_string = substr($title_string,0,$this->line_length-3).'...'.$this->br;
|
||||
|
||||
$output .= $title_string;
|
||||
@@ -517,14 +517,14 @@ class ExportLDIF extends Export {
|
||||
* @param The line to be wrapped if needed.
|
||||
*/
|
||||
private function multiLineDisplay($str) {
|
||||
- $length_string = strlen($str);
|
||||
+ $length_string = strlen((string) $str);
|
||||
$length_max = $this->line_length;
|
||||
|
||||
$output = '';
|
||||
while ($length_string > $length_max) {
|
||||
$output .= substr($str,0,$length_max).$this->br.' ';
|
||||
$str = substr($str,$length_max,$length_string);
|
||||
- $length_string = strlen($str);
|
||||
+ $length_string = strlen((string) $str);
|
||||
|
||||
/* Need to do minus one to align on the right
|
||||
* the first line with the possible following lines
|
|
@ -1,31 +1,454 @@
|
|||
--- lib/functions.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/functions.php
|
||||
@@ -928,7 +928,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') {
|
||||
@@ -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
|
||||
@@ -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);
|
||||
|
||||
@@ -2032,8 +2032,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 +2046,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()) {
|
||||
- $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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
104
net/phpldapadmin/files/patch-lib_import__functions.php
Normal file
104
net/phpldapadmin/files/patch-lib_import__functions.php
Normal file
|
@ -0,0 +1,104 @@
|
|||
--- lib/import_functions.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/import_functions.php
|
||||
@@ -86,7 +86,7 @@ abstract class Import {
|
||||
if (get_request('ldif','REQUEST')) {
|
||||
$this->input = explode("\n",get_request('ldif','REQUEST'));
|
||||
$this->source['name'] = 'STDIN';
|
||||
- $this->source['size'] = strlen(get_request('ldif','REQUEST'));
|
||||
+ $this->source['size'] = strlen((string) get_request('ldif','REQUEST'));
|
||||
|
||||
} elseif (isset($_FILES['ldif_file']) && is_array($_FILES['ldif_file']) && ! $_FILES['ldif_file']['error']) {
|
||||
$input = file_get_contents($_FILES['ldif_file']['tmp_name']);
|
||||
@@ -253,9 +253,9 @@ class ImportLDIF extends Import {
|
||||
|
||||
# Get the DN
|
||||
if (substr($value,0,1) == ':')
|
||||
- $value = base64_decode(trim(substr($value,1)));
|
||||
+ $value = base64_decode(trim((string) substr($value,1)));
|
||||
else
|
||||
- $value = trim($value);
|
||||
+ $value = trim((string) $value);
|
||||
|
||||
return array($attr,$value);
|
||||
}
|
||||
@@ -271,7 +271,7 @@ class ImportLDIF extends Import {
|
||||
|
||||
if ($this->hasMoreEntries() && ! $this->eof()) {
|
||||
# The first line is the DN one
|
||||
- $current[0]= trim($this->_currentLine);
|
||||
+ $current[0]= trim((string) $this->_currentLine);
|
||||
|
||||
# While we end on a blank line, fetch the attribute lines
|
||||
$count = 0;
|
||||
@@ -282,11 +282,11 @@ class ImportLDIF extends Import {
|
||||
/* If the next line begin with a space, we append it to the current row
|
||||
* else we push it into the array (unwrap)*/
|
||||
if ($this->isWrappedLine())
|
||||
- $current[$count] .= trim($this->_currentLine);
|
||||
+ $current[$count] .= trim((string) $this->_currentLine);
|
||||
elseif ($this->isCommentLine()) {}
|
||||
# Do nothing
|
||||
elseif (! $this->isBlankLine())
|
||||
- $current[++$count] = trim($this->_currentLine);
|
||||
+ $current[++$count] = trim((string) $this->_currentLine);
|
||||
else
|
||||
$endEntryFound = true;
|
||||
}
|
||||
@@ -336,7 +336,7 @@ class ImportLDIF extends Import {
|
||||
* @return boolean true if it's a comment line,false otherwise
|
||||
*/
|
||||
private function isCommentLine() {
|
||||
- return substr(trim($this->_currentLine),0,1) == '#' ? true : false;
|
||||
+ return substr(trim((string) $this->_currentLine),0,1) == '#' ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -354,7 +354,7 @@ class ImportLDIF extends Import {
|
||||
* @return boolean if it is a blank line,false otherwise.
|
||||
*/
|
||||
private function isBlankLine() {
|
||||
- return(trim($this->_currentLine) == '') ? true : false;
|
||||
+ return(trim((string) $this->_currentLine) == '') ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -383,10 +383,10 @@ class ImportLDIF extends Import {
|
||||
$return = '';
|
||||
|
||||
if (substr($value,0,1) == '<') {
|
||||
- $url = trim(substr($value,1));
|
||||
+ $url = trim((string) substr($value,1));
|
||||
|
||||
if (preg_match('^file://',$url)) {
|
||||
- $filename = substr(trim($url),7);
|
||||
+ $filename = substr(trim((string) $url),7);
|
||||
|
||||
if ($fh = @fopen($filename,'rb')) {
|
||||
if (! $return = @fread($fh,filesize($filename)))
|
||||
@@ -404,7 +404,7 @@ class ImportLDIF extends Import {
|
||||
} else
|
||||
$return = $value;
|
||||
|
||||
- return trim($return);
|
||||
+ return trim((string) $return);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -480,7 +480,7 @@ class ImportLDIF extends Import {
|
||||
# Fetch the attribute for the following line
|
||||
$currentLine = array_shift($lines);
|
||||
|
||||
- while ($processline && trim($currentLine) && (trim($currentLine) != '-')) {
|
||||
+ while ($processline && trim((string) $currentLine) && (trim((string) $currentLine) != '-')) {
|
||||
$processline = false;
|
||||
|
||||
# If there is a valid line
|
||||
@@ -541,7 +541,7 @@ class ImportLDIF extends Import {
|
||||
array_merge(array($currentLine),$lines));
|
||||
|
||||
$currentLine = array_shift($lines);
|
||||
- if (trim($currentLine))
|
||||
+ if (trim((string) $currentLine))
|
||||
$processline = true;
|
||||
}
|
||||
|
29
net/phpldapadmin/files/patch-lib_page.php
Normal file
29
net/phpldapadmin/files/patch-lib_page.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
--- lib/page.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/page.php
|
||||
@@ -184,7 +184,7 @@ class page {
|
||||
$empty = true;
|
||||
if (function_exists('cmd_control_pane'))
|
||||
foreach (cmd_control_pane('main') as $cmddetails)
|
||||
- if ((isset($cmddetails['enable']) && trim($cmddetails['enable'])) || ! isset($cmddetails['enable'])) {
|
||||
+ if ((isset($cmddetails['enable']) && trim((string) $cmddetails['enable'])) || ! isset($cmddetails['enable'])) {
|
||||
if (! $empty)
|
||||
echo ' | ';
|
||||
|
||||
@@ -358,7 +358,7 @@ class page {
|
||||
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED)
|
||||
debug_log('Sending COMPRESSED output to browser[(%s),%s]',129,0,__FILE__,__LINE__,__METHOD__,
|
||||
- strlen($output),$output);
|
||||
+ strlen((string) $output),$output);
|
||||
|
||||
print gzencode($output);
|
||||
}
|
||||
@@ -445,7 +445,7 @@ class page {
|
||||
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED)
|
||||
debug_log('Sending COMPRESSED output to browser[(%s),%s]',129,0,__FILE__,__LINE__,__METHOD__,
|
||||
- strlen($output),$output);
|
||||
+ strlen((string) $output),$output);
|
||||
|
||||
print gzencode($output);
|
||||
}
|
365
net/phpldapadmin/files/patch-lib_schema__functions.php
Normal file
365
net/phpldapadmin/files/patch-lib_schema__functions.php
Normal file
|
@ -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++;
|
||||
}
|
20
net/phpldapadmin/files/patch-lib_xml2array.php
Normal file
20
net/phpldapadmin/files/patch-lib_xml2array.php
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- lib/xml2array.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/xml2array.php
|
||||
@@ -59,7 +59,7 @@ class xml2array {
|
||||
}
|
||||
|
||||
private function tagOpen($parser,$name,$attrs) {
|
||||
- $name = strtolower($name);
|
||||
+ $name = strtolower((string) $name);
|
||||
|
||||
if (isset($this->stack_ref[$name])) {
|
||||
if (! isset($this->stack_ref[$name][0])) {
|
||||
@@ -86,7 +86,7 @@ class xml2array {
|
||||
}
|
||||
|
||||
private function tagData($parser,$tagData) {
|
||||
- if (trim($tagData) != '') {
|
||||
+ if (trim((string) $tagData) != '') {
|
||||
|
||||
if (isset($this->stack_ref['#text']))
|
||||
$this->stack_ref['#text'] .= $tagData;
|
|
@ -1,11 +1,47 @@
|
|||
--- lib/xmlTemplates.php.orig 2021-12-12 02:35:51 UTC
|
||||
+++ lib/xmlTemplates.php
|
||||
@@ -140,7 +140,7 @@ abstract class xmlTemplates {
|
||||
@@ -85,7 +85,7 @@ abstract class xmlTemplates {
|
||||
$filename = sprintf('%s/%s',$dir,$file);
|
||||
|
||||
if ($changed) {
|
||||
masort($this->templates,'title');
|
||||
- set_cached_item($server_id,$class['item'],'null',$this->templates);
|
||||
+ set_cached_item($server_id,$this->templates,$class['item'],'null');
|
||||
}
|
||||
if (! in_array($filename,$this->getTemplateFiles())) {
|
||||
- $templatename = preg_replace('/.xml$/','',$file);
|
||||
+ $templatename = preg_replace('/.xml$/','',is_null($file)? "":$file);
|
||||
|
||||
$this->templates[$index] = new $class['name']($this->server_id,$templatename,$filename,$type,$index);
|
||||
$index++;
|
||||
@@ -128,7 +128,7 @@ abstract class xmlTemplates {
|
||||
$filename = sprintf('%s/%s',$dir,$file);
|
||||
|
||||
# Store the template
|
||||
- $templatename = preg_replace('/.xml$/','',$file);
|
||||
+ $templatename = preg_replace('/.xml$/','',is_null($file)? "":$file);
|
||||
$this->templates[$counter] = new $class['name']($this->server_id,$templatename,$filename,$type,$counter);
|
||||
$counter++;
|
||||
}
|
||||
@@ -304,7 +304,7 @@ abstract class xmlTemplate {
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
foreach ($this->attributes as $index => $attribute)
|
||||
- if (strtolower($attr) == $attribute->getName() || in_array(strtolower($attr),$attribute->getAliases()))
|
||||
+ if (strtolower((string) $attr) == $attribute->getName() || in_array(strtolower($attr),$attribute->getAliases()))
|
||||
return $index;
|
||||
|
||||
return null;
|
||||
@@ -343,7 +343,7 @@ abstract class xmlTemplate {
|
||||
debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name);
|
||||
|
||||
if ($lower)
|
||||
- return strtolower($this->name);
|
||||
+ return strtolower((string) $this->name);
|
||||
else
|
||||
return $this->name;
|
||||
}
|
||||
@@ -482,7 +482,7 @@ abstract class xmlTemplate {
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
foreach ($this->attributes as $attribute)
|
||||
- if (($attribute->getName() == strtolower($name)) || in_array(strtolower($name),$attribute->getAliases()))
|
||||
+ if (($attribute->getName() == strtolower((string) $name)) || in_array(strtolower($name),$attribute->getAliases()))
|
||||
return $attribute;
|
||||
|
||||
return null;
|
||||
|
|
Loading…
Reference in a new issue