projects
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5ef5dd5
)
GF: Fix esoteric race condition in exicyclog
author
Graeme Fowler
<graemef@exim.org>
Tue, 17 Nov 2015 14:01:28 +0000
(14:01 +0000)
committer
Graeme Fowler
<graemef@exim.org>
Tue, 17 Nov 2015 14:01:28 +0000
(14:01 +0000)
src/src/exicyclog.src
patch
|
blob
|
blame
|
history
diff --git
a/src/src/exicyclog.src
b/src/src/exicyclog.src
index 01d1f2feb2fd8aa82dced2dbc43c886287fb750f..1559a4794512b3f44e9a11613bbe530233ae95d5 100644
(file)
--- a/
src/src/exicyclog.src
+++ b/
src/src/exicyclog.src
@@
-282,28
+282,34
@@
done
if [ $keep -gt 99 ]; then first=001; else first=01; fi
if [ $keep -gt 99 ]; then first=001; else first=01; fi
+# Grab our pid ro avoid race in file creation
+ourpid=$$
+
if [ -f $mainlog ]; then
$mv $mainlog $mainlog.$first
$chown $user:$group $mainlog.$first
if [ -f $mainlog ]; then
$mv $mainlog $mainlog.$first
$chown $user:$group $mainlog.$first
- $touch $mainlog
- $chown $user:$group $mainlog
- $chmod 640 $mainlog
+ $touch $mainlog.$ourpid
+ $chown $user:$group $mainlog.$ourpid
+ $chmod 640 $mainlog.$ourpid
+ $mv $mainlog.$ourpid $mainlog
fi
if [ -f $rejectlog ]; then
$mv $rejectlog $rejectlog.$first
$chown $user:$group $rejectlog.$first
fi
if [ -f $rejectlog ]; then
$mv $rejectlog $rejectlog.$first
$chown $user:$group $rejectlog.$first
- $touch $rejectlog
- $chown $user:$group $rejectlog
- $chmod 640 $rejectlog
+ $touch $rejectlog.$ourpid
+ $chown $user:$group $rejectlog.$ourpid
+ $chmod 640 $rejectlog.$ourpid
+ $mv $rejectlog.$ourpid $rejectlog
fi
if [ -f $paniclog ]; then
$mv $paniclog $paniclog.$first
$chown $user:$group $paniclog.$first
fi
if [ -f $paniclog ]; then
$mv $paniclog $paniclog.$first
$chown $user:$group $paniclog.$first
- $touch $paniclog
- $chown $user:$group $paniclog
- $chmod 640 $paniclog
+ $touch $paniclog.$ourpid
+ $chown $user:$group $paniclog.$ourpid
+ $chmod 640 $paniclog.$ourpid
+ $mv $paniclog.$ourpid $paniclog
fi
# Now scan the (0)02 and later files, compressing where necessary, and
fi
# Now scan the (0)02 and later files, compressing where necessary, and