Mailing List Archive

svn commit: r1916986 - /spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm
Author: sidney
Date: Sun Apr 14 17:28:38 2024
New Revision: 1916986

URL: http://svn.apache.org/viewvc?rev=1916986&view=rev
Log:
bug 8237 - properly delete elements of tied hash

Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm?rev=1916986&r1=1916985&r2=1916986&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DBBasedAddrList.pm Sun Apr 14 17:28:38 2024
@@ -165,11 +165,10 @@ sub remove_entry {
# could be slow...
my $mailaddr = $1;

- while (my ($key, $value) = each %{$self->{accum}}) {
- # regex will catch both key and key|totscore entries and delete them
- if ($key =~ /^\Q${mailaddr}\E\|/) {
+ # regex will catch both key and key|totscore entries and delete them
+ # bug 8237 - Never use while my ($key, $value) (each %hash) to delete elements when using tied hashes
+ foreach my $key (grep {/^\Q${mailaddr}\E\|/} keys %{$self->{accum}}) {
delete $self->{accum}->{$key};
- }
}
}
}