Php ldap搜索上的奇怪行为(本地错误)

Php ldap搜索上的奇怪行为(本地错误),php,ldap,lotus-notes,lotus-domino,openldap,Php,Ldap,Lotus Notes,Lotus Domino,Openldap,几天以来,我们一直在为一个奇怪的ldap错误而挣扎。以下代码在一年多的时间里运行良好。突然,它为一些用户返回一个本地错误(0x52) 相关代码为(connect和bind始终有效,只有某些用户的搜索失败): 奇怪的是,这段代码对大多数用户有效,但对少数用户无效 例如: $ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_1 LASTNAME_1,O=COMPANY)(objectClass=grou

几天以来,我们一直在为一个奇怪的ldap错误而挣扎。以下代码在一年多的时间里运行良好。突然,它为一些用户返回一个
本地错误(0x52)

相关代码为(connect和bind始终有效,只有某些用户的搜索失败):

奇怪的是,这段代码对大多数用户有效,但对少数用户无效

例如:

$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_1 LASTNAME_1,O=COMPANY)(objectClass=groupOfNames))')
    -> works

$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_2 LASTNAME_2,O=COMPANY)(objectClass=groupOfNames))')
    -> fails
但这两个CN都是明确存在的(在softerra ldap浏览器中,两个搜索命令都可以工作,在Lotus Notes中,两个用户似乎完全相同,只是有些ldap客户端和php代码失败)

我们在本页还发现了ibm的以下声明:

0x52-发生了一些本地错误。这通常表示系统上未安装LDAP支持(IBM®i选项32),或者malloc()操作失败

Ldap支持已经安装,我们不知道内存分配错误可能在哪里

如果你需要更多的信息,请告诉我

谢谢你的帮助

更新:

我们尝试在CentOS上使用cli进行搜索,但得到了相同的本地错误(因此这不是php ldap问题,更有可能是notes domino服务器的问题):


对于相同的用户,错误总是发生。出现问题的用户CNs没有特殊字符或类似字符,并且不包含双首或姓氏。

malloc-错误将出现在LDAP扩展的C级。你能分享一个用户的CN_名字和姓氏吗?它是否总是在同一个用户那里不起作用?谢谢你的帮助。我已经更新了我的答案。不幸的是,由于GDPR的原因,我不能给你起名字:/但是正如在更新中注意到的,first/lastname没有特殊字符、umlauts或类似字符,并且只包含一个firstname和一个lastname(没有双名),这是一个很长的过程-可能失败用户的请求返回更多数据并溢出一些php缓冲区(?)无论如何,这些查询一定有一些共同的特征
$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_1 LASTNAME_1,O=COMPANY)(objectClass=groupOfNames))')
    -> works

$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_2 LASTNAME_2,O=COMPANY)(objectClass=groupOfNames))')
    -> fails
ldapsearch -D "USERNAME" -w PASSWORD -h LDAP_URL -b "" -s sub "(&(uniqueMember=CN=FIRSTNAME LASTNAME,O=COMPANY)(objectClass=groupOfNames))"
    -> ldap_result: Local error (-2)