about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/lists.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/ngircd/lists.c b/src/ngircd/lists.c
index d3f26e2e..fd86f301 100644
--- a/src/ngircd/lists.c
+++ b/src/ngircd/lists.c
@@ -60,13 +60,13 @@ Lists_GetMask(const struct list_elem *e)
  * Get optional "reason" text stored in list element.
  *
  * @param list_elem List element.
- * @return Pointer to "reason" text or NULL.
+ * @return Pointer to "reason" text or empty string ("").
  */
 GLOBAL const char *
 Lists_GetReason(const struct list_elem *e)
 {
 	assert(e != NULL);
-	return e->reason;
+	return e->reason ? e->reason : "";
 }
 
 /**
@@ -129,14 +129,10 @@ Lists_Add(struct list_head *h, const char *Mask, time_t ValidUntil,
 	e = Lists_CheckDupeMask(h, Mask);
 	if (e) {
 		e->valid_until = ValidUntil;
-		if (e->reason)
+		if (Reason) {
 			free(e->reason);
-		e->reason = malloc(strlen(Reason) + 1);
-		if (e->reason)
-			strlcpy(e->reason, Reason, strlen(Reason) + 1);
-		else
-			Log(LOG_EMERG,
-			    "Can't allocate memory for new list reason text!");
+			e->reason = strdup(Reason);
+		}
 		return true;
 	}