The Samba-Bugzilla – Bug 6706
Samba4 fails to parse correctly field CSDVersion of osVersionInfoEx
Last modified: 2009-09-11 12:22:05 UTC
In the getDomainInfo RPC I get times to time the following error:
[Thu Sep 10 10:11:53 2009 MSD, 0 ../lib/util/charset/charcnv.c:216:iconv_talloc()]
Conversion error: Illegal multibyte sequence(<E4><U+077A>^A|<EF><BA>^A)
Due to this parsing error when receiving the getDomainInfo rpc call the server is unable to respond to the client a valid answer.
The problem is due to the fact the field not only contains valid utf16 but also
garbage after a couple of null bytes, this structure is explained here:
0154 TCHAR szCSDVersion "Service Pack 2\0"
0170 TCHAR szCSDVersion[...] (ignore; recycled memory)
But the utf8_push (called by the smb_iconv) function is trying to parse the whole string content as utf16 and sometime it fails (cf. attachment 1 [details]) because the random part can contains illegal utf16 sequences.
Created attachment 4677 [details]
hex dump of the osVersionInfoEx field
Created attachment 4678 [details]
Binary version of the previous attachment
Created attachment 4683 [details]
Patch for changing the parsing.
Fixed. Thanks for the investigation!