]> git.proxmox.com Git - pmg-api.git/commitdiff
RuleCache: remove unnecessary copying of marks
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 9 Feb 2024 12:54:25 +0000 (13:54 +0100)
committerStoiko Ivanov <s.ivanov@proxmox.com>
Thu, 15 Feb 2024 19:26:29 +0000 (20:26 +0100)
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
case).

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@proxmox.com>
src/PMG/RuleCache.pm

index b8690eacd7ba926a7ddd88d603d1f9754604c560..51d8a07faf86af514baa530b4e4a81ed107d5986 100644 (file)
@@ -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;
                }
            }
        }