changeset 753:3521edb6c240 HEAD

charset_to_ucase_utf8_string() didn't return \0 terminated string with ascii/utf8.
author Timo Sirainen <tss@iki.fi>
date Tue, 03 Dec 2002 15:55:44 +0200
parents 772d8ad12895
children b531f5cd415e
files src/lib-charset/charset-iconv.c src/lib-charset/charset-utf8.c
diffstat 2 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-charset/charset-iconv.c	Tue Dec 03 15:31:39 2002 +0200
+++ b/src/lib-charset/charset-iconv.c	Tue Dec 03 15:55:44 2002 +0200
@@ -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);
--- a/src/lib-charset/charset-utf8.c	Tue Dec 03 15:31:39 2002 +0200
+++ b/src/lib-charset/charset-utf8.c	Tue Dec 03 15:55:44 2002 +0200
@@ -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;