diff --git a/amavisd-maia b/amavisd-maia
index 589056a..9ed4205 100755
|
a
|
b
|
|
| 3738 | 3738 | } |
| 3739 | 3739 | |
| 3740 | 3740 | # Store e-mail in the database |
| 3741 | | sub maia_store_mail($$$$$@) { |
| 3742 | | my($dbh, $msginfo, $oversized, $enable_stats_tracking, $system_default_user_is_local, @local_domain_tables) = @_; |
| | 3741 | sub maia_store_mail($$\$$$@) { |
| | 3742 | my($dbh, $msginfo, $oversized, $size_limit, $enable_stats_tracking, $system_default_user_is_local, @local_domain_tables) = @_; |
| 3743 | 3743 | my($insert, $select, $sth, $sth2, $sth3, @row, @row2, $contents); |
| 3744 | 3744 | my $size = $1 if ($msginfo->orig_header_size + 1 + $msginfo->orig_body_size) =~ m/^([0-9]+)$/; # untaint |
| 3745 | 3745 | $size = untaint($size); |
| … |
… |
|
| 3748 | 3748 | my $subject = ""; |
| 3749 | 3749 | my($header, $mail_id, $recipient, $user_id); |
| 3750 | 3750 | my($received_date) = strftime("%Y-%m-%d %H:%M:%S",localtime); |
| 3751 | | if (!$oversized) { |
| | 3751 | if (!$$oversized) { |
| 3752 | 3752 | my($fh) = $msginfo->mail_text; |
| 3753 | 3753 | $fh->seek(0,0) or die "Can't rewind mail file: $!"; |
| 3754 | 3754 | my(@lines) = <$fh>; |
| … |
… |
|
| 3756 | 3756 | $contents =~ s/\0//g; # strip nulls |
| 3757 | 3757 | if (defined $encryption_key) { |
| 3758 | 3758 | $contents = maia_encrypt_text($encryption_key, $contents); |
| | 3759 | { |
| | 3760 | use bytes; |
| | 3761 | my $encrypted_size = length($contents); |
| | 3762 | $$oversized = $encrypted_size > $size_limit; |
| | 3763 | if ($$oversized) { |
| | 3764 | do_log(3, sprintf("Maia: [maia_store_mail] WARNING: Size limit (%ld) > size of encrypted message (%ld); changing to oversized status.", |
| | 3765 | $size_limit, $encrypted_size)); |
| | 3766 | } |
| | 3767 | } |
| 3759 | 3768 | } |
| 3760 | 3769 | $contents = untaint($contents); |
| 3761 | 3770 | } |
| … |
… |
|
| 3777 | 3786 | $subject = untaint($subject); |
| 3778 | 3787 | $sender = substr($sender, 0, 255) if length($sender) > 255; |
| 3779 | 3788 | |
| 3780 | | if (!$oversized) { |
| | 3789 | if (!$$oversized) { |
| 3781 | 3790 | if ($dbtype =~ /^mysql$/si) { # MySQL |
| 3782 | 3791 | |
| 3783 | 3792 | $insert = "INSERT INTO maia_mail (received_date, size, sender_email, envelope_to, subject, contents) VALUES (NOW(),?,?,?,?,?)"; |
| … |
… |
|
| 9348 | 9357 | } |
| 9349 | 9358 | |
| 9350 | 9359 | # write mail to maia_mail table |
| 9351 | | $mail_id = maia_store_mail($dbh, $msginfo, $oversized, $enable_stats_tracking, |
| | 9360 | $mail_id = maia_store_mail($dbh, $msginfo, $oversized, $size_limit, $enable_stats_tracking, |
| 9352 | 9361 | $system_default_user_is_local, |
| 9353 | 9362 | $local_domains_ldap, \%local_domains, |
| 9354 | 9363 | \@local_domains_acl, $local_domains_re); |