diff src/address.c @ 411:9b93c0a3bd8c

Ensure lvals, rvals and components of address strucs are stripped.
author markus schnalke <meillo@marmaro.de>
date Wed, 29 Feb 2012 12:06:33 +0100
parents bc9a7845b53a
children
line wrap: on
line diff
--- a/src/address.c	Wed Feb 29 12:05:47 2012 +0100
+++ b/src/address.c	Wed Feb 29 12:06:33 2012 +0100
@@ -37,7 +37,7 @@
 	address *addr = create_address(path, is_rfc821);
 
 	if (addr && !addr->domain) {
-		addr->domain = g_strdup(domain);
+		addr->domain = g_strstrip(g_strdup(domain));
 	}
 	return addr;
 }
@@ -50,8 +50,8 @@
 
 	if (addr) {
 		memset(addr, 0, sizeof(address));
-		addr->address = g_strchomp(g_strdup(path));
-		addr->local_part = g_strdup(addr->address);
+		addr->address = g_strstrip(g_strdup(path));
+		addr->local_part = g_strstrip(g_strdup(addr->address));
 		addr->domain = g_strdup("localhost");  /* quick hack */
 	}
 	return addr;
@@ -78,10 +78,11 @@
 	if (!(addr = g_malloc(sizeof(address)))) {
 		return NULL;
 	}
-	addr->address = g_strdup(orig->address);
-	addr->local_part = l_part ? g_strdup(l_part) :
-			g_strdup(orig->local_part);
-	addr->domain = dom ? g_strdup(dom) : g_strdup(orig->domain);
+	addr->address = g_strstrip(g_strdup(orig->address));
+	addr->local_part = g_strstrip(l_part ? g_strdup(l_part) :
+			g_strdup(orig->local_part));
+	addr->domain = g_strstrip(dom ? g_strdup(dom) :
+			g_strdup(orig->domain));
 	addr->flags = 0;
 	addr->children = NULL;
 	addr->parent = NULL;
@@ -164,14 +165,12 @@
 {
 	static gchar *buffer = NULL;
 
-	if (!addr) {
-		g_free(buffer);
-		buffer = NULL;
-		return NULL;
-	}
 	if (buffer) {
 		g_free(buffer);
 	}
+	if (!addr) {
+		return NULL;
+	}
 	if (!*addr->local_part) {
 		buffer = g_strdup("<>");
 	} else {