X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=t-prot;h=e2b36cff8acaa8b236ddc84531a46a835117e7de;hb=1fad38b45847876c7e396a986aed602b167fb34d;hp=bf3a0a199a20cb4d18beb5089fc1ce766665ce13;hpb=fa59d87d4825cc16e7d38d2f4e8b71cd057ee85f;p=pkg%2Ft-prot.git diff --git a/t-prot b/t-prot index bf3a0a1..e2b36cf 100755 --- a/t-prot +++ b/t-prot @@ -1,13 +1,13 @@ #!/usr/bin/perl -w -# $Id: t-prot,v 1.261 2009/08/24 20:32:11 jochen Exp $ +# $Id: t-prot,v 1.267 2009/12/30 21:34:16 jochen Exp $ require 5.006; use strict; use Fcntl qw(O_EXCL O_WRONLY O_CREAT); use Getopt::Mixed qw(nextOption); -use constant VER => '2.7'; +use constant VER => '2.10'; use constant REV => ''; -use constant REL => q$Revision: 1.261 $=~m/(\d+(?:\.\d+)+)/; +use constant REL => q$Revision: 1.267 $=~m/(\d+(?:\.\d+)+)/; # MTA expecting mail on STDIN # (you might have to adjust this if using a different MTA) use constant SENDMAIL => '/usr/sbin/sendmail -oi'; @@ -442,23 +442,13 @@ sub process_msg { my (@ads, @hdr, @bo1, @bo2, @ftr, @sig, @vrb, @att) = ((), (), (), (), (), (), (), (), ()); - # First, remove and store lines we might need later... + # Remove and store lines we might need later... # Remove headers: if (!$nohdr) { for ($x=0; $x<$#$lines; $x++) { if (@$lines[$x] =~ /^$/) { last; }; } - - # check body length and stop processing silently if msg is too long: - if ((defined $maxlines) && (@$lines-$x > $maxlines)) { - return; - } - @hdr = @$lines[0..$x]; splice(@$lines, 0, $x+1); } - elsif ((defined $maxlines) && (@$lines > $maxlines)) { - # check body length and stop processing silently if msg is too long: - return; - } # remember the original body lines count my $linecount = scalar(@$lines); @@ -1076,6 +1066,14 @@ if (!open(IN, $ifile)) my @message = ; close IN; +# First, check msg length and stop processing if msg is too long: +if ((defined $maxlines) && (@message > $maxlines)) { + if ($ofile ne 'NONE') { + write_msg(($mda?'|'.SENDMAIL." $mda":">$ofile"), \@message); + } + exit(EX_DATAERR); +} + # this should be self-explanatory: process_msg(\@message);