Rocco,

> > Nevertheless, according to SA documentation the current
> > calling method (since SA 3.0.0) lacks a call to $mail_obj->finish.
> > The following patch should fix it:

> I'm using  SA 3.1.8. Do it suffer of the same problem?

Yes, I would think the 3.1.8 came after 3.0.0.

> I'm using amavisd-new-2.4.4. Is this patch valid for the amavisd script
> included in this amavisd-new version?

Here is a patch against 2.4.4:

--- amavisd~    Mon Nov 20 18:35:40 2006
+++ amavisd     Tue May 22 12:26:58 2007
@@ -15987,5 +15987,5 @@
     section_time($which_section);
 
-    my($per_msg_status);
+    my($mail_obj,$per_msg_status);
     my($saved_umask) = umask; my($saved_pid) = $$;
     my($start_time) = time;  # SA may use timer for its own purposes, get time
@@ -16006,5 +16006,5 @@
       alarm($dt);
       do_log(5,"timer set to %d s for SA (was %d s)", $dt,$remaining_time);
-      my($mail_obj); my($sa_version) = $self->sa_version;
+      my($sa_version) = $self->sa_version;
       do_log(5,"calling SA parse, SA version %s", $sa_version);
       # *** note that $sa_version could be 3.0.1, which is not really numeric!
@@ -16062,4 +16062,6 @@
     if (defined $per_msg_status)
       { $per_msg_status->finish; undef $per_msg_status }
+    if (defined $mail_obj)
+      { $mail_obj->finish; undef $mail_obj }
     if ($$ != $saved_pid) {
       eval { do_log(-2,"PANIC, SA produced a clone process ".


and here is the same patch against 2.4.5:

--- amavisd~    Wed Jan 31 00:12:37 2007
+++ amavisd     Tue May 22 12:23:46 2007
@@ -16184,5 +16184,5 @@
 sub call_spamassassin($$$) {
   my($self,$msginfo,$lines) = @_;
-  my($which_section); my($per_msg_status);
+  my($which_section); my($mail_obj,$per_msg_status);
   my($saved_umask) = umask; my($saved_pid) = $$;
   my($spamassassin_obj) = $self->{'spamassassin_obj'};
@@ -16203,5 +16203,5 @@
   eval {
     $which_section = 'SA parse';
-    my($mail_obj); my($sa_version) = $self->sa_version;
+    my($sa_version) = $self->sa_version;
     do_log(5,"calling SA parse, SA version %s", $sa_version);
     # *** note that $sa_version could be 3.0.1, which is not really numeric!
@@ -16249,4 +16249,6 @@
   if (defined $per_msg_status)
     { $per_msg_status->finish; undef $per_msg_status }
+  if (defined $mail_obj)
+    { $mail_obj->finish; undef $mail_obj }
   if ($$ != $saved_pid) {
     eval { do_log(-2,"PANIC, SA produced a clone process ".


> If Yes, How do I have to apply the patch?

Save a patch to some file, e.g. 0.patch, then cd to a directory
where amavisd is located, and apply the patch with a 'patch' command,
feeding 0.patch on stdin to it, e.g.:

 cd /usr/local/sbin
 #have 0.patch ready in this directory
 patch < 0.patch

It knows which file to patch by looking at first two lines of a patch.

  Mark

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
AMaViS-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amavis-user
AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3
AMaViS-HowTos:http://www.amavis.org/howto/

Reply via email to