Mercurial > hg > mlmmj
changeset 773:2add5c5f88f8
Fix some memory leaks
author | Ben Schmidt |
---|---|
date | Fri, 12 Nov 2010 00:53:36 +1100 |
parents | 179d5a0ed686 |
children | 62f9b36df5a5 |
files | ChangeLog src/mlmmj-send.c |
diffstat | 2 files changed, 17 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Nov 12 00:01:07 2010 +1100 +++ b/ChangeLog Fri Nov 12 00:53:36 2010 +1100 @@ -1,3 +1,4 @@ + o Fixed small memory leaks when SMTP errors occur o Improved error logging when requeuing o Fix php-admin to work when topdir contains a symlink (e.g. on Mac) o Better techniques for locating support files in php-admin -- existing
--- a/src/mlmmj-send.c Fri Nov 12 00:01:07 2010 +1100 +++ b/src/mlmmj-send.c Fri Nov 12 00:53:36 2010 +1100 @@ -248,7 +248,7 @@ size_t bodylen) { int retval = 0; - char *reply, *tohdr; + char *reply, *reply2, *tohdr; if(strchr(to, '@') == NULL) { errno = 0; @@ -268,7 +268,8 @@ reply); myfree(reply); write_rset(sockfd); - checkwait_smtpreply(sockfd, MLMMJ_RSET); + reply2 = checkwait_smtpreply(sockfd, MLMMJ_RSET); + if (reply2 != NULL) myfree(reply2); return MLMMJ_FROM; } retval = write_rcpt_to(sockfd, to); @@ -280,7 +281,8 @@ reply = checkwait_smtpreply(sockfd, MLMMJ_RCPTTO); if(reply) { write_rset(sockfd); - checkwait_smtpreply(sockfd, MLMMJ_RSET); + reply2 = checkwait_smtpreply(sockfd, MLMMJ_RSET); + if (reply2 != NULL) myfree(reply2); if(mlmmjbounce && ((reply[0] == '4') || (reply[0] == '5')) && (reply[1] == '5')) { myfree(reply); @@ -304,7 +306,8 @@ log_error(LOG_ARGS, "Error with DATA. Reply = [%s]", reply); myfree(reply); write_rset(sockfd); - checkwait_smtpreply(sockfd, MLMMJ_RSET); + reply2 = checkwait_smtpreply(sockfd, MLMMJ_RSET); + if (reply2 != NULL) myfree(reply2); return MLMMJ_DATA; } @@ -362,7 +365,8 @@ "avail. Reply = [%s]", reply); myfree(reply); write_rset(sockfd); - checkwait_smtpreply(sockfd, MLMMJ_RSET); + reply2 = checkwait_smtpreply(sockfd, MLMMJ_RSET); + if (reply2 != NULL) myfree(reply2); return MLMMJ_DOT; } @@ -428,7 +432,7 @@ size_t bodylen, const char *verpextra) { int retval, i; - char *reply; + char *reply, *reply2; retval = write_mail_from(sockfd, from, verpextra); if(retval) { @@ -441,7 +445,8 @@ reply); myfree(reply); write_rset(sockfd); - checkwait_smtpreply(sockfd, MLMMJ_RSET); + reply2 = checkwait_smtpreply(sockfd, MLMMJ_RSET); + if (reply2 != NULL) myfree(reply2); return MLMMJ_FROM; } for(i = 0; i < addrs->count; i++) { @@ -482,7 +487,8 @@ log_error(LOG_ARGS, "Error with DATA. Reply = [%s]", reply); myfree(reply); write_rset(sockfd); - checkwait_smtpreply(sockfd, MLMMJ_RSET); + reply2 = checkwait_smtpreply(sockfd, MLMMJ_RSET); + if (reply2 != NULL) myfree(reply2); return MLMMJ_DATA; } @@ -519,7 +525,8 @@ "avail. Reply = [%s]", reply); myfree(reply); write_rset(sockfd); - checkwait_smtpreply(sockfd, MLMMJ_RSET); + reply2 = checkwait_smtpreply(sockfd, MLMMJ_RSET); + if (reply2 != NULL) myfree(reply2); return MLMMJ_DOT; }