Be explicit with sticky removal, so two simultaneous processes don't create a race where sticky is left enabled.
This commit is contained in:
parent
6602114959
commit
284cc33207
2 changed files with 5 additions and 8 deletions
|
|
@ -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.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue