[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#5720) ldap_str2charray calls ldap_utf8_strchr incorrectly
h.b.furuseth@usit.uio.no wrote:
> quanah@OpenLDAP.org writes:
>> utf-8.c:char * (ldap_utf8_strchr)( const char *str, const char *chr )
>>
>> I.e., string, character, as normal libc functions.
>>
>> However, at line 125 in charray.c, it is called as:
>> if ( ldap_utf8_strchr( brkstr, s ) != NULL ) {
>> This order appears to be incorrect.
> No. That code counts the number of delimiters characters in the
> string being split. Since brkstr can contain several characters,
> the loop checks each "utf-8 character" in str against brkstr.
The code was certainly broken, regardless. If the input string uses any UTF8
characters beyond 0x7f then the simple increment of "s++" would yield invalid
characters for most of the iterations of the loop.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/