[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#7297) slapd crashes when ldap->mysql-backend query contains '\00' symbols



On 06/11/2012 02:10 PM, mobisid@gmail.com wrote:
> Full_Name: Alex Rusinov
> Version: slapd 2.3.43 (Feb 22 2012 15:59:04)
> OS: CentOS release 5.6 (Final), Linux isg 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (2a02:578:1:101:daa:ef09:905b:5510)
>
>
> Im experiencing ldap crashes when query contains \00 symbols, example (dc was
> hidden):
> # ldapsearch -LLL -x -s sub -b "dc=aaanet,dc=net"
> "(&(objectClass=account)(uid=aaa\00bbb))"
> ldap_result: Can't contact LDAP server (-1)<- here it crashed
> --
> I'm using ldap with mysql-backend, versions:
> http://pastebin.com/AMBZKvjH                                         installed
> =======
> logs:
> http://pastebin.com/Jmz61mQb
>
> Right before the crash the following string appears in logs:
> slapd: ../../../../servers/slapd/back-sql/util.c:144: backsql_strfcat_x:
> Assertion `dest->bb_val.bv_val == ((void *)0) || dest->bb_val.bv_len == strlen(
> dest->bb_val.bv_val )' failed.

At a first glance, the test "dest->bb_val.bv_len == strlen( 
dest->bb_val.bv_val )" looks malformed, as it expects bervals to be 
valid C strings, so it looks like a bug.

Disclaimer: please don't take this message as a commitment to fixing the 
bug, as I don't know when I'll have time to look at it in detail.

p.


-- 
Pierangelo Masarati
Associate Professor
Dipartimento di Ingegneria Aerospaziale
Politecnico di Milano