[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