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;
                }
        }
 

Reply via email to