From: mmj Date: Fri, 11 Jun 2004 10:26:58 +0000 (+1000) Subject: More memory debugging, and small bugfixes X-Git-Tag: RELEASE_1_0_0~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2b88caf803faa60cd0a3ff98aa2ffae8fbffdc6;p=thirdparty%2Fmlmmj.git More memory debugging, and small bugfixes --- diff --git a/ChangeLog b/ChangeLog index eeab549a..15491173 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/README b/README index 6983ea4b..76b3c819 100644 --- a/README +++ b/README @@ -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 @@ To use mlmmj, do the following: 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" diff --git a/TODO b/TODO index 4d4a05e7..0294e6f0 100644 --- a/TODO +++ b/TODO @@ -7,5 +7,3 @@ Functionality items: 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. diff --git a/VERSION b/VERSION index faef31a4..1ce5663a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.0 +0.7.2-RC diff --git a/include/log_error.h b/include/log_error.h index 9a01b42f..d4f15d9a 100644 --- a/include/log_error.h +++ b/include/log_error.h @@ -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, ...); diff --git a/src/log_error.c b/src/log_error.c index 4db90059..e26c795a 100644 --- a/src/log_error.c +++ b/src/log_error.c @@ -18,6 +18,11 @@ void log_set_name(const char* name) 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, ...) { diff --git a/src/mlmmj-bounce.c b/src/mlmmj-bounce.c index 1b829c2c..8838a9a7 100644 --- a/src/mlmmj-bounce.c +++ b/src/mlmmj-bounce.c @@ -127,6 +127,7 @@ void do_probe(const char *listdir, const char *mlmmjsend, const char *addr) free(listaddr); free(listfqdn); free(listname); + free(indexstr); probefile = concatstr(4, listdir, "/bounce/", addr, "-probe"); MY_ASSERT(probefile); @@ -292,7 +293,6 @@ int main(int argc, char **argv) free(bfilename); exit(EXIT_FAILURE); } - free(bfilename); /* TODO check that the message is not already bounced */ @@ -317,6 +317,7 @@ int main(int argc, char **argv) rename(mailname, savename); free(savename); } + free(bfilename); return EXIT_SUCCESS; } diff --git a/src/mlmmj-maintd.c b/src/mlmmj-maintd.c index 5881af9a..d1defa0c 100644 --- a/src/mlmmj-maintd.c +++ b/src/mlmmj-maintd.c @@ -293,6 +293,8 @@ int resend_requeue(const char *listdir, const char *mlmmjsend) 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 main(int argc, char **argv) { 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 @@ int main(int argc, char **argv) } 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); } @@ -744,6 +749,12 @@ int main(int argc, char **argv) else sleep(MAINTD_SLEEP); } + + free(mlmmjbounce); + free(mlmmjsend); + free(mlmmjunsub); + + log_free_name(); exit(EXIT_SUCCESS); } diff --git a/src/mlmmj-sub.c b/src/mlmmj-sub.c index 63129005..61e7eea9 100644 --- a/src/mlmmj-sub.c +++ b/src/mlmmj-sub.c @@ -317,5 +317,7 @@ int main(int argc, char **argv) if(confirmsub) confirm_sub(listdir, listaddr, address, mlmmjsend); + free(listaddr); + return EXIT_SUCCESS; } diff --git a/src/mlmmj-unsub.c b/src/mlmmj-unsub.c index 779f0827..ce5ce29e 100644 --- a/src/mlmmj-unsub.c +++ b/src/mlmmj-unsub.c @@ -426,6 +426,7 @@ int main(int argc, char **argv) confirm_unsub(listdir, listaddr, address, mlmmjsend); } closedir(subddir); + free(listaddr); return EXIT_SUCCESS; }