changeset 115:4596dfc0d895

Use strncpy instead of memcpy Add some free()'s Remove some cruft
author mmj
date Thu, 27 May 2004 15:44:01 +1000
parents 202340f490e0
children f619b85b02d1
files src/mlmmj-send.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/mlmmj-send.c	Thu May 27 09:34:41 2004 +1000
+++ b/src/mlmmj-send.c	Thu May 27 15:44:01 2004 +1000
@@ -107,7 +107,6 @@
 	pid_t pid = 0;
 
 	if((c = strchr(myfrom, '@')) == NULL) {
-		log_error(LOG_ARGS, "strchr(%s, '@') = [%s]", myfrom, c);
 		free(myfrom);
 		return 0; /* Success when mailformed 'from' */
 	}
@@ -120,8 +119,7 @@
 	len = num - myfrom - 1;
 	addr = malloc(len + 1);
 	addr[len] = '\0';
-	memcpy(addr, myfrom, len);
-	errno = 0;
+	strncpy(addr, myfrom, len);
 
 	pid = fork();
 	
@@ -176,6 +174,7 @@
 		checkwait_smtpreply(sockfd, MLMMJ_RSET);
 		if(mlmmjbounce && (reply[1] == '5') && ((reply[0] == '4') ||
 					(reply[0] == '5'))) {
+			free(reply);
 			return bouncemail(listdir, mlmmjbounce, from);
 		} else {
 			log_error(LOG_ARGS, "Error in RCPT TO. Reply = [%s]",
@@ -194,6 +193,7 @@
 	reply = checkwait_smtpreply(sockfd, MLMMJ_DATA);
 	if(reply) {
 		log_error(LOG_ARGS, "Error with DATA. Reply = [%s]", reply);
+		free(reply);
 		write_rset(sockfd);
 		checkwait_smtpreply(sockfd, MLMMJ_RSET);
 		return MLMMJ_DATA;
@@ -224,6 +224,7 @@
 		log_error(LOG_ARGS, "Mailserver did not ack end of mail.\n"
 				"<CR><LF>.<CR><LF> was written, to no"
 				"avail. Reply = [%s]", reply);
+		free(reply);
 		write_rset(sockfd);
 		checkwait_smtpreply(sockfd, MLMMJ_RSET);
 		return MLMMJ_DOT;