[gmime-devel] Crash when parsing invalid group mail address



This email address will cause current gmime (git) crash:

:) <test test>

it causes NULL dereference, a simple patch is attached.

-- 
Damian Pietras

http://www.linuxprogrammingblog.com
Index: gmime/internet-address.c
===================================================================
--- gmime/internet-address.c	(revision 5791)
+++ gmime/internet-address.c	(working copy)
@@ -1269,18 +1269,21 @@
 	InternetAddressGroup *group = (InternetAddressGroup *) ia;
 	gboolean encode = flags & INTERNET_ADDRESS_ENCODE;
 	gboolean fold = flags & INTERNET_ADDRESS_FOLD;
-	char *name;
-	size_t len;
+	char *name = NULL;
+	size_t len = 0;
 	
-	name = encoded_name (ia->name, encode);
-	len = strlen (name);
+	if (ia->name) {
+		name = encoded_name (ia->name, encode);
+		len = strlen (name);
 	
-	if (fold && *linelen > 1 && (*linelen + len + 1) > GMIME_FOLD_LEN) {
-		linewrap (string);
-		*linelen = 1;
+		if (fold && *linelen > 1 && (*linelen + len + 1) > GMIME_FOLD_LEN) {
+			linewrap (string);
+			*linelen = 1;
+		}
+	
+		g_string_append_len (string, name, len);
 	}
-	
-	g_string_append_len (string, name, len);
+
 	g_string_append_len (string, ": ", 2);
 	*linelen += len + 2;
 	g_free (name);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]