[Mono-dev] String.Compare bug
nicklas at isharp.dk
Wed Apr 13 12:05:11 EDT 2011
Hi mono devers!
I discovered a bug in String.Compare when using a UTF8 string created
from a byte array with a zero-byte at the end. It's converted to the
same string on both .net and mono, however, String.Compare on .net is
different from String.Compare on mono.
The issue is the following:
Mono reports "1" on the string compare, signaling that the converted
string is "larger" than the hard-coded string I compare it to. And it
kinda is - the byte array is converted to "%EOF\0" and the hardcoded
string is just "%EOF" - but .net manages to ignore the '\0' when doing
the compare, which results in "0" (equal strings).
Attached is a patch, which adds a test-case to
'mcs/class/corlib/Test/System' which shows the issue -
"CompareNotWorking3" to follow the lingo :)
I have tried to track the issue down myself in String.Compare, but I
gave up due to the complexity of the underlying code.
As a final note, I'm running with UTF8 culture on my Linux box, where
the issue is showing up.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 934 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20110413/2faf54b0/attachment.bin
More information about the Mono-devel-list