Bug #18023 Updated: blank fields in chosen sort order cause decode error
| From: | patrick dot buick at wrx-ca dot com | Date: | Fri, 28 Jun 2002 16:13:08 +0000 |
| Subject: | Bug #18023 Updated: blank fields in chosen sort order cause decode error | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-12426@lists.php.net to get a copy of this message | ||
ID: 18023
Updated by: patrick.buick@wrx-ca.com
Reported By: patrick.buick@wrx-ca.com
-Status: Feedback
+Status: Open
Bug Type: LDAP related
Operating System: Windows 2000 Advanced Server
PHP Version: 4.2.1
New Comment:
<?php
/* sample script to reproduce ldap_search error 0x45 on blank values.
This is VERY cut-down from the original script and doesn't represent
my
programming style whatsoever!
*/
function quit_gracefully($errmsg) {
exit
("<p><strong><em>".$errmsg."</strong></em></p></body></html>\n");
};
function check_ldap_success($rlid, $msg) {
$errcode = ldap_errno($rlid);
if ($errcode != 0x00) {
echo ("<h2>An error has been generated</h2><br />\n");
echo ("<p>LDAP Error Message:
<".ldap_error($rlid)."></p>\n");
echo ("<p>Error Code:
<0x".dechex($errcode)."></p>\n");
if ($errcode == 0x54) {
echo ("<p>The results may not be right. This has been
submitted" .
" as a bug report.</p>\n" .
"<p>Programmer Message:
<".$msg."></p>\n");
}
else quit_gracefully("<p>Programmer Message:
<".$msg."></p>\n");
};
}
// Beginning of Main Program
?>
<html>
<head>
<title>Test Blank Entries</title>
</head>
<body>
<h2>Test Blank Entries</h2>
<?php
// Set Variables
$server = "cal-exch.wrx-ca.com";
$baseDN = "o=Wireless Matrix";
$searchFilter = "objectclass=groupOfNames";
$sortOrder = "sn";
$attributes = array("rfc822mailbox","rdn");
// Do Work
$link=ldap_connect($server);
check_ldap_success($link, "Server Connect");
$r=ldap_bind($link);
check_ldap_success($link, "Binding");
$sr=ldap_search($link,$baseDN, $searchFilter, $attributes);
check_ldap_success($link, "Searching");
ldap_sort($link, $sr, $sortOrder);
check_ldap_success($link, "Sorting");
$info = ldap_get_entries($link, $sr);
check_ldap_success($link, "Getting Entries");
// If the error is ignored by check_ldap_success, then it prints fine
// print_array($info);
ldap_close($link);
?>
</body>
</html>
Previous Comments:
------------------------------------------------------------------------
[2002-06-28 03:03:25] derick@php.net
Please add a short, reproducing script.
------------------------------------------------------------------------
[2002-06-27 15:25:01] patrick.buick@wrx-ca.com
Using PHP 4.2.1 on Windows 2000 Advanced Server under Apache 1.3.24, I
do an LDAP Connect, Bind and Search just fine.
I then use the (relatively) new ldap_sort() with a sort order of "sn",
with no error returned by the sort routine.
When I then attempt a ldap_get_entries on the sorted result, I get a
Decoding Error, LDAP error code 0x54.
If I ignore the error and print the array, it all prints fine with no
errors. (IE: No missing fields etc.)
The only oddity I can see in the output data is that one of the "sn"
fields is empty and by sort-order gets placed as the first item in the
array.
I haven't yet tried printing the entire raw array to see if there are
any other anomalies introduced into the data that echo "overlooks".
So, in Bill 'n Ted's example format:
What I did:
Obtained LDAP data and sorted it using ldap_sort() by "sn".
Attempted to use get_ldap_entries() and got error 0x54 decoding error.
What I wanted to happen:
I wanted an entry array sorted by "sn".
What I got:
An error, though if I ignore the error, I got an array
sorted by "sn".
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=18023&edit=1