You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2022/03/09 13:17:24 UTC

svn commit: r1898780 - /spamassassin/trunk/lib/Mail/SpamAssassin.pm

Author: hege
Date: Wed Mar  9 13:17:24 2022
New Revision: 1898780

URL: http://svn.apache.org/viewvc?rev=1898780&view=rev
Log:
Purge old .sawritetest files automatically

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

Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin.pm?rev=1898780&r1=1898779&r2=1898780&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Wed Mar  9 13:17:24 2022
@@ -1979,6 +1979,13 @@ sub set_global_state_dir {
 sub test_global_state_dir {
     my ($self, $dir) = @_;
     eval { mkpath($dir, 0, 0700); }; # just a single stat if exists already
+    # Purge stale test files
+    if (opendir(WT_DIR, $dir)) {
+      foreach (grep {/^\.sawritetest/ && -M "$dir/$_" > 0.0001} readdir(WT_DIR)) {
+        unlink(Mail::SpamAssassin::Util::untaint_file_path("$dir/$_"));
+      }
+      closedir WT_DIR;
+    }
     my $n = ".sawritetest$$".Mail::SpamAssassin::Util::pseudo_random_string(6);
     my $file = File::Spec->catdir($dir, $n);
     if (Mail::SpamAssassin::Util::touch_file($file, { create_exclusive => 1 })) {