changeset 216:cec96ecd796c

More memory debugging, and small bugfixes
author mmj
date Fri, 11 Jun 2004 20:26:58 +1000
parents 7f09a5d661dc
children 08b8e5879c6b
files ChangeLog README TODO VERSION include/log_error.h src/log_error.c src/mlmmj-bounce.c src/mlmmj-maintd.c src/mlmmj-sub.c src/mlmmj-unsub.c
diffstat 10 files changed, 27 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jun 11 03:51:33 2004 +1000
+++ b/ChangeLog	Fri Jun 11 20:26:58 2004 +1000
@@ -1,3 +1,4 @@
+ o More memory debugging
 0.7.1
  o Fix bug with .reciptto and .mailfrom getting swapped
  o Plug a few small memory leaks in mlmmj-maintd
--- a/README	Fri Jun 11 03:51:33 2004 +1000
+++ b/README	Fri Jun 11 20:26:58 2004 +1000
@@ -1,4 +1,4 @@
-README mlmmj-0.7.0					Jun 9th 2004
+README mlmmj-0.7.1					Jun 10th 2004
 
 This is an attempt at implementing a mailing list manager with the same
 functionality as the brilliant ezmlm, but with a decent license and mail server
@@ -60,10 +60,7 @@
     NOTE: Don't forget newaliases.
 
  4) Start mlmmj-maintd (remember full path when starting it!) or add it to
-    crontab with -F switch. If using it in daemon mode, keep an eye on it
-    everyonce in a while to check it's running, or to make sure it's not turning
-    into a memory hog. In the case it should happen, please tell us!
-    For now the recommended way is to run it via cron:
+    crontab with -F switch. The recommended way for now is to run it via cron:
 
     "0 */2 * * *  /usr/bin/mlmmj-maintd -F -L /var/spool/mlmmj/mlmmj-test"
 
--- a/TODO	Fri Jun 11 03:51:33 2004 +1000
+++ b/TODO	Fri Jun 11 20:26:58 2004 +1000
@@ -7,5 +7,3 @@
  o listname+get functionality
  o web interface
 
-An ever ongoing TODO is we need someone to run it all through valgrind or
-similar and plug all memory and fd leaks etc.
--- a/VERSION	Fri Jun 11 03:51:33 2004 +1000
+++ b/VERSION	Fri Jun 11 20:26:58 2004 +1000
@@ -1,1 +1,1 @@
-0.7.0
+0.7.2-RC
--- a/include/log_error.h	Fri Jun 11 03:51:33 2004 +1000
+++ b/include/log_error.h	Fri Jun 11 20:26:58 2004 +1000
@@ -14,6 +14,7 @@
 #define LOG_ARGS __FILE__, __LINE__, strerror(errno)
 
 void log_set_name(const char *name);
+void log_free_name(void);
 void log_error(const char *file, int line, const char *errstr,
 		const char *fmt, ...);
 
--- a/src/log_error.c	Fri Jun 11 03:51:33 2004 +1000
+++ b/src/log_error.c	Fri Jun 11 20:26:58 2004 +1000
@@ -18,6 +18,11 @@
 	log_name = strdup(name);
 }
 
+void log_free_name()
+{
+	free(log_name);
+}
+
 void log_error(const char *file, int line, const char *errstr,
 	const char *fmt, ...)
 {
--- a/src/mlmmj-bounce.c	Fri Jun 11 03:51:33 2004 +1000
+++ b/src/mlmmj-bounce.c	Fri Jun 11 20:26:58 2004 +1000
@@ -127,6 +127,7 @@
 	free(listaddr);
 	free(listfqdn);
 	free(listname);
+	free(indexstr);
 
 	probefile = concatstr(4, listdir, "/bounce/", addr, "-probe");
 	MY_ASSERT(probefile);
@@ -292,7 +293,6 @@
 		free(bfilename);
 		exit(EXIT_FAILURE);
 	}
-	free(bfilename);
 
 	/* TODO check that the message is not already bounced */
 
@@ -317,6 +317,7 @@
 		rename(mailname, savename);
 		free(savename);
 	}
+	free(bfilename);
 
 	return EXIT_SUCCESS;
 }
--- a/src/mlmmj-maintd.c	Fri Jun 11 03:51:33 2004 +1000
+++ b/src/mlmmj-maintd.c	Fri Jun 11 20:26:58 2004 +1000
@@ -293,6 +293,8 @@
 		return 1;
 	}
 
+	free(dirname);
+	
 	while((dp = readdir(queuedir)) != NULL) {
 		if((strcmp(dp->d_name, "..") == 0) ||
 			(strcmp(dp->d_name, ".") == 0))
@@ -634,7 +636,7 @@
 {
 	int opt, daemonize = 1;
 	char *bindir, *listdir = NULL, *mlmmjsend, *mlmmjbounce, *mlmmjunsub;
-	char *logstr, *logname, *random = random_str();
+	char *logstr, *logname, *random;
 	char uidstr[16];
 	struct stat st;
 
@@ -697,10 +699,13 @@
 	}
 
 	for(;;) {
+		random = random_str();
 		logname = concatstr(3, listdir, "maintdlog-", random);
+		free(random);
 		maintdlogfd = open(logname, O_WRONLY|O_EXCL|O_CREAT,
 					S_IRUSR|S_IWUSR);
 		if(maintdlogfd < 0) {
+			free(logname);
 			log_error(LOG_ARGS, "Could not open maintenance logfile");
 			exit(EXIT_FAILURE);
 		}
@@ -745,5 +750,11 @@
 			sleep(MAINTD_SLEEP);
 	}
 		
+	free(mlmmjbounce);
+	free(mlmmjsend);
+	free(mlmmjunsub);
+
+	log_free_name();
+		
 	exit(EXIT_SUCCESS);
 }
--- a/src/mlmmj-sub.c	Fri Jun 11 03:51:33 2004 +1000
+++ b/src/mlmmj-sub.c	Fri Jun 11 20:26:58 2004 +1000
@@ -317,5 +317,7 @@
 	if(confirmsub)
 		confirm_sub(listdir, listaddr, address, mlmmjsend);
 
+	free(listaddr);
+
 	return EXIT_SUCCESS;
 }
--- a/src/mlmmj-unsub.c	Fri Jun 11 03:51:33 2004 +1000
+++ b/src/mlmmj-unsub.c	Fri Jun 11 20:26:58 2004 +1000
@@ -426,6 +426,7 @@
 			confirm_unsub(listdir, listaddr, address, mlmmjsend);
 	}
 	closedir(subddir);
+	free(listaddr);
 
 	return EXIT_SUCCESS;
 }