Hi there,
Please find attached a small patch against current CVS which fixes a problem
in clamfi_envfrom() of clamav-milter where return value from a failed clamd
connect was incorrectly specified as EX_TEMPFAIL rather than the Milter API
value SMFIS_TEMPFAIL.
Fixes sendmail deadlock in the event of clamd death.
Regards,
Matt.
diff -ruN clamav-devel.orig/clamav-milter/clamav-milter.c
clamav-devel/clamav-milter/clamav-milter.c
--- clamav-devel.orig/clamav-milter/clamav-milter.c Tue Sep 30 11:09:12 2003
+++ clamav-devel/clamav-milter/clamav-milter.c Tue Sep 30 11:13:10 2003
@@ -805,11 +805,11 @@
if((privdata->cmdSocket = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
perror("socket");
- return EX_TEMPFAIL;
+ return SMFIS_TEMPFAIL;
}
if(connect(privdata->cmdSocket, (struct sockaddr *)&server,
sizeof(struct sockaddr_un)) < 0) {
perror(localSocket);
- return EX_TEMPFAIL;
+ return SMFIS_TEMPFAIL;
}
} else {
struct sockaddr_in server;
@@ -821,11 +821,11 @@
if((privdata->cmdSocket = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("socket");
- return EX_TEMPFAIL;
+ return SMFIS_TEMPFAIL;
}
if(connect(privdata->cmdSocket, (struct sockaddr *)&server,
sizeof(struct sockaddr_in)) < 0) {
perror("connect");
- return EX_TEMPFAIL;
+ return SMFIS_TEMPFAIL;
}
}