Mercurial > dovecot > original-hg > dovecot-1.2
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;