changeset 5915:124ca6f5e895

[gaim-migrate @ 6347] gaim_utf8_strcasecmp was crashing win32 on invalid UTF8 params committer: Tailor Script <tailor@pidgin.im>
author Herman Bloggs <hermanator12002@yahoo.com>
date Tue, 17 Jun 2003 22:45:02 +0000
parents 1344aeab6baa
children a51b709b2b3e
files src/util.c
diffstat 1 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/util.c	Tue Jun 17 20:14:05 2003 +0000
+++ b/src/util.c	Tue Jun 17 22:45:02 2003 +0000
@@ -991,9 +991,18 @@
 }
 
 gint gaim_utf8_strcasecmp(const gchar *a, const gchar *b) {
-	gchar *a_norm = g_utf8_casefold(a, -1);
-	gchar *b_norm = g_utf8_casefold(b, -1);
-	gint ret = g_utf8_collate(a_norm, b_norm);
+	gchar *a_norm=NULL;
+	gchar *b_norm=NULL;
+	gint ret=-1;
+
+	if(!g_utf8_validate(a, -1, NULL) || !g_utf8_validate(b, -1, NULL)) {
+		gaim_debug(GAIM_DEBUG_ERROR, "gaim_utf8_strcasecmp", "One or both parameters are invalid UTF8\n");
+		return ret;
+	}
+
+	a_norm = g_utf8_casefold(a, -1);
+	b_norm = g_utf8_casefold(b, -1);
+	ret = g_utf8_collate(a_norm, b_norm);
 	g_free(a_norm);
 	g_free(b_norm);
 	return ret;