[dovecot-cvs] dovecot/src/lib-charset charset-iconv.c,1.6,1.7 charset-utf8.c,1.1,1.2
cras at procontrol.fi
cras at procontrol.fi
Tue Dec 3 15:55:46 EET 2002
Update of /home/cvs/dovecot/src/lib-charset
In directory danu:/tmp/cvs-serv24713/lib-charset
Modified Files:
charset-iconv.c charset-utf8.c
Log Message:
charset_to_ucase_utf8_string() didn't return \0 terminated string with
ascii/utf8.
Index: charset-iconv.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-charset/charset-iconv.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- charset-iconv.c 1 Dec 2002 18:16:35 -0000 1.6
+++ charset-iconv.c 3 Dec 2002 13:55:44 -0000 1.7
@@ -117,9 +117,10 @@
if (charset == NULL || strcasecmp(charset, "us-ascii") == 0 ||
strcasecmp(charset, "ascii") == 0) {
- outbuf = t_malloc(*size);
+ outbuf = t_malloc(*size + 1);
memcpy(outbuf, buf, *size);
- return str_ucase(outbuf);
+ outbuf[*size] = '\0';
+ return str_ucase(outbuf); /* FIXME: utf8 */
}
cd = iconv_open("UTF-8", charset);
Index: charset-utf8.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-charset/charset-utf8.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- charset-utf8.c 13 Nov 2002 13:47:59 -0000 1.1
+++ charset-utf8.c 3 Dec 2002 13:55:44 -0000 1.2
@@ -65,8 +65,12 @@
if (charset == NULL || strcasecmp(charset, "us-ascii") == 0 ||
strcasecmp(charset, "ascii") == 0 ||
strcasecmp(charset, "UTF-8") == 0 ||
- strcasecmp(charset, "UTF8") == 0)
- return str_ucase(t_strdup_noconst(buf)); /* FIXME: utf8 */
+ strcasecmp(charset, "UTF8") == 0) {
+ outbuf = t_malloc(*size + 1);
+ memcpy(outbuf, buf, *size);
+ outbuf[*size] = '\0';
+ return str_ucase(outbuf); /* FIXME: utf8 */
+ }
if (unknown_charset != NULL)
*unknown_charset = TRUE;
More information about the dovecot-cvs
mailing list