https://bugs.winehq.org/show_bug.cgi?id=48174
--- Comment #17 from Vincent Povirk madewokherd@gmail.com ---
From what I can tell, it uses Encoding.UTF8.GetBytes() to convert text to a
byte array and passes a pointer to the array to the rendering engine. To my knowledge, this does not and should not null-terminate the string.
Further, it does not pass in a length.
I can't figure out a way to hack GetBytes to actually test this, it's simply too widely-used and needs to work correctly.
It's possible that this is broken on Windows too, just less often. Or maybe for some reason there always happens to be a 0 byte after arrays in .NET.