Subject: | broken for binary data when run in multibyte locale |
Broken for binary data when run in multibyte locale
For binary data, when running under the UTF8 locale (or other multibyte
locales), binary data is run through GetTrimmedSpaceLen, resulting in
corruption. This can cause fewer characters than actual per bug 50703,
however this can also cause MORE characters (up to 5 more in UTF8),
running past the actual buffer into randomly initialized memory. This
is due to lots of problems in GetTrimmedSpaceLen().
Although I haven't seen it occur, the read buffer overrun could
potentially be a crasher issue on some platforms.
See also bug 50703.