tracker r1210 - trunk/src/trackerd



Author: jamiemcc
Date: Sat Mar  8 00:32:08 2008
New Revision: 1210
URL: http://svn.gnome.org/viewvc/tracker?rev=1210&view=rev

Log:
fix for email crasher

Modified:
   trunk/src/trackerd/tracker-db-email.c

Modified: trunk/src/trackerd/tracker-db-email.c
==============================================================================
--- trunk/src/trackerd/tracker-db-email.c	(original)
+++ trunk/src/trackerd/tracker-db-email.c	Sat Mar  8 00:32:08 2008
@@ -448,8 +448,8 @@
 static inline int
 limit_address_count (int len)
 {
-	if (len > MAX_ADDRESSES) {
-		return MAX_ADDRESSES;
+	if (len > MAX_ADDRESSES - 1) {
+		return MAX_ADDRESSES - 1;
 	}
 
 	return len;
@@ -605,15 +605,23 @@
 				GString *gstr = g_string_new ("");
 
 				if (mp->addr) {
+					
 					gchar *value = get_utf8 (mp->addr);
-					g_string_append_printf (gstr, "%s ", value);
-					g_free (value);
+					
+					if (value) {
+						g_string_append_printf (gstr, "%s ", value);
+						g_free (value);
+					}
 				}
 
 				if (mp->name) {
+					
 					gchar *value = get_utf8 (mp->name);
-					g_string_append (gstr, value);
-					g_free (value);
+					
+					if (value) {
+						g_string_append (gstr, value);
+						g_free (value);
+					}
 				}
 
 				array[i] = g_string_free (gstr, FALSE);
@@ -640,14 +648,20 @@
 
 				if (mp->addr) {
 					gchar *value = get_utf8 (mp->addr);
-					g_string_append_printf (gstr, "%s ", value);
-					g_free (value);
+					
+					if (value) {
+						g_string_append_printf (gstr, "%s ", value);
+						g_free (value);
+					}
 				}
 	
 				if (mp->name) {
 					gchar *value = get_utf8 (mp->name);
-					g_string_append_printf (gstr, "%s ", value);
-					g_free (value);
+					
+					if (value) {
+						g_string_append_printf (gstr, "%s ", value);
+						g_free (value);
+					}
 				}
 
 				array[i] = g_string_free (gstr, FALSE);
@@ -675,7 +689,12 @@
 					continue;
 				}
 				gchar *value = get_utf8 (ma->attachment_name);
-				array[i] = value;
+				
+				if (value) {
+					array[i] = value;
+				} else {
+					array[i] = g_strdup ("unknown");
+				}
 			}
 
 			if (i > 0) {



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