diff -u -r -p mlmmj-1.2.15/src/mlmmj-bounce.c mlmmj.bounceaddr/src/mlmmj-bounce.c
--- mlmmj-1.2.15/src/mlmmj-bounce.c	Sun Aug  6 10:36:47 2006
+++ mlmmj.bounceaddr/src/mlmmj-bounce.c	Tue Feb 26 21:11:34 2008
@@ -86,6 +86,7 @@ char *fetchindexes(const char *bouncefil
 	 		continue;
 
 		colon = strchr(line, ':');
+		MY_ASSERT(colon);
 		*colon = '\0';
 		s = indexstr;
 		indexstr = concatstr(4, s, "        ", line, "\n");
@@ -314,6 +315,7 @@ int main(int argc, char **argv)
 			exit(EXIT_SUCCESS);
 
 		a = strrchr(address, '@');
+		MY_ASSERT(a);
 		*a = '=';
 	}
 
diff -u -r -p mlmmj-1.2.15/src/mlmmj-maintd.c mlmmj.bounceaddr/src/mlmmj-maintd.c
--- mlmmj-1.2.15/src/mlmmj-maintd.c	Wed Dec  6 14:19:09 2006
+++ mlmmj.bounceaddr/src/mlmmj-maintd.c	Tue Feb 26 21:12:10 2008
@@ -244,6 +244,7 @@ int resend_queue(const char *listdir, co
 
 		if(strchr(dp->d_name, '.')) {
 			ch = strrchr(mailname, '.');
+			MY_ASSERT(ch);
 			*ch = '\0';
 			if(stat(mailname, &st) < 0) {
 				if(errno == ENOENT) {
diff -u -r -p mlmmj-1.2.15/src/mlmmj-send.c mlmmj.bounceaddr/src/mlmmj-send.c
--- mlmmj-1.2.15/src/mlmmj-send.c	Mon Feb 25 19:21:09 2008
+++ mlmmj.bounceaddr/src/mlmmj-send.c	Tue Feb 26 21:09:08 2008
 	}
 	*c = '\0';
 	num = strrchr(myfrom, '-');
+	MY_ASSERT(num);
 	num++;
 	c = strstr(myfrom, listdelim);
+	MY_ASSERT(c);
 	myfrom = strchr(c, '-');
+	MY_ASSERT(myfrom);
 	myfrom++;
 	len = num - myfrom - 1;
 	addr = mymalloc(len + 1);
@@ -1080,6 +1078,7 @@ int main(int argc, char **argv)
 			/* error, so remove the probefile */
 			tmpstr = mystrdup(to_addr);
 			a = strchr(tmpstr, '@');
+			MY_ASSERT(a);
 			*a = '=';
 			probefile = concatstr(4, listdir, "/bounce/", tmpstr,
 					"-probe");
diff -u -r -p mlmmj-1.2.15/src/strgen.c mlmmj.bounceaddr/src/strgen.c
--- mlmmj-1.2.15/src/strgen.c	Sun Jun 10 20:05:02 2007
+++ mlmmj.bounceaddr/src/strgen.c	Tue Feb 26 21:20:39 2008
@@ -32,9 +32,11 @@
 #include <ctype.h>
 #include <errno.h>
 
+#include "mlmmj.h"
 #include "strgen.h"
 #include "wrappers.h"
 #include "memory.h"
+#include "log_error.h"
 
 char *random_str()
 {
@@ -57,6 +59,8 @@ char *random_plus_addr(const char *addr)
 	snprintf(tmpstr, len, "%s", addr);
 
 	atsign = strchr(tmpstr, '@');
+	MY_ASSERT(atsign);
+
 	*atsign = '=';
 
 	snprintf(dest, len, "%x%x-%s", random_int(), random_int(), tmpstr);
@@ -82,6 +86,8 @@ char *genlistname(const char *listaddr)
 	char *dest, *atsign;
 
 	atsign = strchr(listaddr, '@');
+	MY_ASSERT(atsign);
+
 	len = atsign - listaddr + 1;
 	dest = mymalloc(len);
 	
@@ -96,6 +102,8 @@ char *genlistfqdn(const char *listaddr)
 	char *dest, *atsign;
 
 	atsign = strchr(listaddr, '@');
+	MY_ASSERT(atsign);
+
 	len = strlen(listaddr) - (atsign - listaddr);
 	dest = mymalloc(len);
 	snprintf(dest, len, "%s", atsign + 1);
@@ -143,9 +151,9 @@ char *hostnamestr()
 
 	for (;;) {
 		len *= 2;
-		free(hostname);
+		myfree(hostname);
 
-		hostname = malloc(len);
+		hostname = mymalloc(len);
 		hostname[len-1] = '\0';
 
 		/* gethostname() is allowed to:
@@ -278,7 +286,7 @@ char *gendatestr()
 	const char *weekday = NULL, *month = NULL;
 
 	/* 6 + 26 + ' ' + timezone which is 5 + '\n\0' == 40 */
-	timestr = (char *)malloc(40);
+	timestr = (char *)mymalloc(40);
 	t = time(NULL);
 
 	localtime_r(&t, &lttm);


