From 284cc33207b6ef15b6eb547a1a1ca5d166a23ff2 Mon Sep 17 00:00:00 2001 From: "Mahlon E. Smith" Date: Thu, 3 Oct 2019 11:44:44 -0700 Subject: [PATCH] Be explicit with sticky removal, so two simultaneous processes don't create a race where sticky is left enabled. --- lib/ezmlm.rb | 4 ++-- lib/ezmlm/list.rb | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/ezmlm.rb b/lib/ezmlm.rb index 079a99c..de39a64 100644 --- a/lib/ezmlm.rb +++ b/lib/ezmlm.rb @@ -11,10 +11,10 @@ require 'pathname' # end # module Ezmlm - # $Id$ + # $Id: ezmlm.rb,v 81cc7d47f68f 2017/05/30 18:08:48 mahlon $ # Package version - VERSION = '1.1.1' + VERSION = '1.1.2' # Suck in the components. # diff --git a/lib/ezmlm/list.rb b/lib/ezmlm/list.rb index c045f24..fc9814e 100644 --- a/lib/ezmlm/list.rb +++ b/lib/ezmlm/list.rb @@ -1,7 +1,6 @@ #!/usr/bin/ruby # vim: set nosta noet ts=4 sw=4: - require 'pathname' require 'time' require 'etc' @@ -14,7 +13,7 @@ require 'ezmlm' unless defined?( Ezmlm ) # #--- class Ezmlm::List - # $Id$ + # $Id: list.rb,v a89d91d4b157 2017/06/23 17:54:26 mahlon $ # Valid subdirectories/sections for subscriptions. SUBSCRIPTION_DIRS = %w[ deny mod digest allow ] @@ -824,13 +823,11 @@ class Ezmlm::List ### def with_safety( &block ) home = self.homedir - mode = home.stat.mode - - home.chmod( mode | 01000 ) # enable sticky + home.chmod( home.stat.mode | 01000 ) # enable sticky yield ensure - home.chmod( mode ) + home.chmod( home.stat.mode & ~01000 ) # disable sticky end end # class Ezmlm::List