Joel,

> >>Later on, because you have $banned_namepath_re nonempty, it overruled
> >>the earlier decision:
> >>due to the fact that when using the $banned_namepath_re the
> >>optimization was not done as it could have been. Not nice, but not
> >>incorrect.
> >
> > Thanks for the explanation, I'm glad somebody knows the big picture
> > because I sure don't :-)

I'm about to wrap up the 2.3.3 and I have prepared the following patch
to fix the issue you stumbled across. The fix should ensure the banned
check is not performed if all recipients agree it is not needed,
even in the presence of $banned_namepath_re.
You may want to try it out, or wait few days for a 2.3.3-pre or -rc.

--- amavisd.orig        Wed Jun 29 12:26:11 2005
+++ amavisd     Tue Aug  9 19:51:42 2005
@@ -5143,9 +5143,10 @@
   my($bfnmr) = ca('banned_filename_maps');  # two-level map: recip, partname
   my(@recip_tables);  # a list of records describing banned tables for recips
-  my($any_table_in_recip_tables) = 0;
+  my($any_table_in_recip_tables) = 0;  my($any_not_bypassed) = 0;
   for my $r (@{$msginfo->per_recip_data}) {
     my($recip) = $r->recip_addr;
     my(@tables,@tables_m);  # list of banned lookup tables for this recipient
     if (!lookup(0,$recip,@$bypmr)) {  # not bypassed
+      $any_not_bypassed = 1;
       my($t_ref,$m_ref) = lookup(1,$recip,@$bfnmr);
       if (defined $t_ref) {
@@ -5185,5 +5186,7 @@
   }
   my($bnpre) = cr('banned_namepath_re');
-  if (!$any_table_in_recip_tables && !(ref $bnpre && ref $$bnpre)) {
+  if (!$any_not_bypassed) {
+    do_log(3,"skipping banned check: all recipients bypass banned checks");
+  } elsif (!$any_table_in_recip_tables && !(ref $bnpre && ref $$bnpre)) {
     do_log(3,"skipping banned check: no applicable lookup tables");
   } else {


Mark


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net
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