2008-10-08 Tor Lillqvist <tml@novell.com>
Bug 554790 - g_convert() misbehaves with winiconv versions
* glib/win_iconv.c (kernel_mbtowc): If converting from ASCII,
explicitly check for and reject 8bit chars. MultiByteToWideChar()
doesn't, at least not on XP.
svn path=/trunk/; revision=7578
+2008-10-08 Tor Lillqvist <tml@novell.com>
+
+ Bug 554790 - g_convert() misbehaves with winiconv versions
+
+ * glib/win_iconv.c (kernel_mbtowc): If converting from ASCII,
+ explicitly check for and reject 8bit chars. MultiByteToWideChar()
+ doesn't, at least not on XP.
+
2008-10-06 Matthias Clasen <mclasen@redhat.com>
* glib/gtypes.h: Properly include gmacros.h
len = cv->mblen(cv, buf, bufsize);\r
if (len == -1)\r
return -1;\r
+ /* If converting from ASCII, reject 8bit\r
+ * chars. MultiByteToWideChar() doesn't. Note that for ASCII we\r
+ * know that the mblen function is sbcs_mblen() so len is 1.\r
+ */\r
+ if (cv->codepage == 20127 && buf[0] >= 0x80)\r
+ return_error(EILSEQ);\r
*wbufsize = MultiByteToWideChar(cv->codepage, mbtowc_flags (cv->codepage),\r
(const char *)buf, len, (wchar_t *)wbuf, *wbufsize);\r
if (*wbufsize == 0)\r