From: mmj Date: Mon, 7 Jun 2004 17:55:56 +0000 (+1000) Subject: Plug memory leak in mlmmj-send X-Git-Tag: RELEASE_1_0_0~138 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97329672cdf3611eae3fba55ce0464b158ab01e6;p=thirdparty%2Fmlmmj.git Plug memory leak in mlmmj-send --- diff --git a/src/Makefile.am b/src/Makefile.am index a153205d..7f3238b2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -39,7 +39,7 @@ mlmmj_unsub_SOURCES = mlmmj-unsub.c writen.c mylocking.c \ mlmmj_bounce_SOURCES = mlmmj-bounce.c print-version.c log_error.c \ subscriberfuncs.c strgen.c random-int.c writen.c \ - prepstdreply.c mygetline.c + prepstdreply.c mygetline.c openrandexclrw.c mlmmj_maintd_SOURCES = mlmmj-maintd.c print-version.c log_error.c mygetline.c \ strgen.c random-int.c chomp.c diff --git a/src/mlmmj-bounce.c b/src/mlmmj-bounce.c index 1d59b7f7..b36ffe3b 100644 --- a/src/mlmmj-bounce.c +++ b/src/mlmmj-bounce.c @@ -28,15 +28,22 @@ /* XXX this is not finished */ void do_probe(const char *listdir, const char *mlmmjsend, const char *addr) { - char *myaddr, *from, *randomstr, *a, *line; - char *textfilename, *queuefilename; + char *myaddr, *from, *randomstr, *a, *line, *textfilename; + char *queuefilename, *listaddr, *listfqdn, *listname; + char *fromstr, *tostr, *subjectstr; int textfd, queuefd; ssize_t n; myaddr = strdup(addr); MY_ASSERT(myaddr); - from = concatstr(3, "LISTNAME+bounces-", myaddr, "-probe@DOMAIN.TLD"); + listaddr = getlistaddr(listdir); + chomp(listaddr); + + listname = genlistname(listaddr); + listfqdn = genlistfqdn(listaddr); + + from = concatstr(3, listname, "+bounces-", myaddr, "-probe@", listfqdn); a = strchr(myaddr, '='); if (!a) { @@ -47,15 +54,6 @@ void do_probe(const char *listdir, const char *mlmmjsend, const char *addr) } *a = '@'; - textfilename = concatstr(2, listdir, "/text/probe"); - if((textfd = open(textfilename, O_RDONLY)) < 0) { - log_error(LOG_ARGS, "Could not open '%s'", textfilename); - free(textfilename); - free(myaddr); - exit(EXIT_FAILURE); - } - free(textfilename); - queuefilename = NULL; do { randomstr = random_str(); diff --git a/src/mlmmj-send.c b/src/mlmmj-send.c index 762bf127..4a0b0639 100644 --- a/src/mlmmj-send.c +++ b/src/mlmmj-send.c @@ -365,6 +365,7 @@ int send_mail_many(int sockfd, const char *from, const char *replyto, return -1; } + free(addr); } return 0; }