[pmg-devel] [RFC PATCH pmg-api 01/11] RuleCache: remove unnecessary copying of marks

Dominik Csapak d.csapak at proxmox.com
Thu Feb 1 16:36:47 CET 2024

two things that are wrong here
* what_match_targets never returns a non empty list
* we copy the list just returned just to append it to itself again

My guess is that we meant to copy the original list, not the just
acquired one, and append it to the one just received. But that never did
make a difference, since we only ever check for defined-ness on that
exact list, and the only Object that this applies to (Spam) always
returns an empty list with the spaminfo (so it's always defined in that

Since this was always the behavior AFAICT, just remove the unnecessary
copy of the list for now. If we encounter any actual bugs with that, we
can still implement it back in the right way (copy the original list).

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
 src/PMG/RuleCache.pm | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/PMG/RuleCache.pm b/src/PMG/RuleCache.pm
index b8690ea..51d8a07 100644
--- a/src/PMG/RuleCache.pm
+++ b/src/PMG/RuleCache.pm
@@ -322,9 +322,7 @@ sub what_match {
 	    my $target_info;
 	    if ($target_info = $obj->what_match_targets($queue, $element, $msginfo, $dbh)) {
 		foreach my $k (keys %$target_info) {
-		    my $cmarks = $target_info->{$k}->{marks}; # make a copy
 		    $res->{$k} = $target_info->{$k};
-		    push @{$res->{$k}->{marks}}, @$cmarks if $cmarks;

More information about the pmg-devel mailing list