[gmime] Fixed a crash in group_to_string()



commit a79e593b4eacfd432f15feb485df23de27a9cca3
Author: Jeffrey Stedfast <fejj gnome org>
Date:   Thu Sep 2 10:02:06 2010 -0400

    Fixed a crash in group_to_string()
    
    2010-09-02  Jeffrey Stedfast  <fejj novell com>
    
    	* gmime/internet-address.c (group_to_string): Don't crash if the
    	group name is unset. Thanks to Damian Pietras for this patch.

 ChangeLog                |    5 +++++
 gmime/internet-address.c |   21 ++++++++++++---------
 2 files changed, 17 insertions(+), 9 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 3a75695..0487aec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-02  Jeffrey Stedfast  <fejj novell com>
+
+	* gmime/internet-address.c (group_to_string): Don't crash if the
+	group name is unset. Thanks to Damian Pietras for this patch.
+
 2010-09-01  Jeffrey Stedfast  <fejj novell com>
 
 	* gmime/gmime-utils.c (g_mime_utils_header_decode_phrase):
diff --git a/gmime/internet-address.c b/gmime/internet-address.c
index 326037d..8d32484 100644
--- a/gmime/internet-address.c
+++ b/gmime/internet-address.c
@@ -1145,18 +1145,21 @@ group_to_string (InternetAddress *ia, guint32 flags, size_t *linelen, GString *s
 	InternetAddressGroup *group = (InternetAddressGroup *) ia;
 	gboolean encode = flags & INTERNET_ADDRESS_ENCODE;
 	gboolean fold = flags & INTERNET_ADDRESS_FOLD;
-	char *name;
-	size_t len;
-	
-	name = encoded_name (ia->name, encode);
-	len = strlen (name);
+	char *name = NULL;
+	size_t len = 0;
 	
-	if (fold && *linelen > 1 && (*linelen + len + 1) > GMIME_FOLD_LEN) {
-		linewrap (string);
-		*linelen = 1;
+	if (ia->name != NULL) {
+		name = encoded_name (ia->name, encode);
+		len = strlen (name);
+		
+		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]