[Mono-list] Bug in RFCFilter in Namespace Novell.Directory.Ldap.Rfc2251

Fischer Tobias T.Fischer at servonic.de
Wed Apr 28 12:04:28 EDT 2010


i have found a bug in the implementation of RFCFilter in Namespace
Novell.Directory.Ldap.Rfc2251 which is used by the directory searcher.

The affected function is:
  private sbyte[] unescapeString(System.String string_Renamed)

This function does some string encoding and returns the encoded string
as a sbyte array.

This bug in this function is the following:

If string_Renamed contains none US-ASCII Characters (ASCII 7-bit)
"unescapeString" encodes them to UTF-8
But the string returned in the sbyte array does not contain them,
instead it contains null values for every none US-ASCII Char.

If have traced down the problem to the following line:
  Array.Copy((System.Array) SupportClass.ToByteArray(utf8Bytes), 0,
(System.Array)SupportClass.ToByteArray( octets), iOctets,

Here the converted Character (contained in utf8Bytes) should be copied
to octets, but SupportClass.ToByteArray does not return a reference to
octets but a new copy.
Since then octets does never receive the encoded bytes -> returned value
doesn't contain non US-ASCII Chars anymore.

I think I can fix this bug, but I do not know how to commit my fix.
Should I create a patch (using tortoise svn) and just submit it to this
list or have I to do something else?
Since this is a private function I also do not know how to write a test
for this behavior.

Thanks in advance

Tobias Fischer

More information about the Mono-list mailing list