- Delete own_socketfile to resolve race condition where the permissions

change fails on a Unix socket because it hasn't been created yet (libmilter
   will do this correctly on its own based on umask, the milter doesn't need
   to do it) (LP: #1849712)
This commit is contained in:
Scott Kitterman
2019-10-29 02:50:40 -04:00
parent d117330113
commit 34b2edbb50
3 changed files with 4 additions and 12 deletions
-2
View File
@@ -36,7 +36,6 @@ from dkimpy_milter.util import drop_privileges
from dkimpy_milter.util import setExceptHook
from dkimpy_milter.util import write_pid
from dkimpy_milter.util import read_keyfile
from dkimpy_milter.util import own_socketfile
from dkimpy_milter.util import fold
__version__ = "1.0.1"
@@ -371,7 +370,6 @@ def main():
Milter.set_flags(Milter.CHGHDRS + Milter.ADDHDRS)
miltername = 'dkimpy-filter'
socketname = milterconfig.get('Socket')
own_socketfile(milterconfig)
drop_privileges(milterconfig)
sys.stdout.flush()
if milterconfig.get('Syslog'):
-10
View File
@@ -146,16 +146,6 @@ def write_pid(milterconfig):
return pid
def own_socketfile(milterconfig):
"""If socket is Unix socket, chown to UserID before dropping privileges"""
import os
user, group = user_group(milterconfig.get('UserID'))
if milterconfig.get('Socket')[:1] == '/':
os.chown(milterconfig.get('Socket')[1:], user, group)
if milterconfig.get('Socket')[:6] == "local:":
os.chown(milterconfig.get('Socket')[6:], user, group)
def read_keyfile(milterconfig, keytype):
"""Read private key from file."""
import syslog