https://bz.apache.org/SpamAssassin/show_bug.cgi?id=8050
--- Comment #10 from Sidney Markowitz <sid...@sidney.com> --- (In reply to Henrik Krohns from comment #8) > It does what the comment implies ("skip if checked already"). Skips a > redundant test_global_state_dir() call that's already been done for that > directory. In the first if block, $prev is set to $self->{home_dir_for_helpers}/.spamassassin not to $self->{home_dir_for_helpers} In the second if block, $home is set to $self->{home_dir_for_helpers} and then the if compares $home ne $prev which will not detect the redundant test. $prev should be set to $self->{home_dir_for_helpers} before the .spamassassin is appended, making $home ne $prev the correct comparison. (In reply to Henrik Krohns from comment #9) I searched for home_dir_for_helper in the code and found that the only place it is actually set is in spamd when it constructs a SpamAssassin object, where it is set based on either the -H option or defaulting to the user home directory. If the first if block is not also skipped when in Windows, launching spamd will cause the same problem with creating a .spamassassin directory as you are trying to fix. Because home_dir_for_helper is not set anywhere else, that if block will never be run except under spamd. But it shouldn't be run in Windows for the same reasons the second if block should not be run in Windows. -- You are receiving this mail because: You are the assignee for the bug.