diff --git a/dkimpy_milter/config.py b/dkimpy_milter/config.py index 001f6a2..b880815 100644 --- a/dkimpy_milter/config.py +++ b/dkimpy_milter/config.py @@ -278,7 +278,7 @@ def _dataset_to_list(dataset): # This is a flat file dataset, which are key value:value stores ds = [] dsd = {} - if dataset[0] == '/': + if dataset[0] == '/' or dataset[:2] == './' or dataset[:3] == '../': dsname = dataset elif dataset[:5] == 'file:': dsname = dataset[5:] diff --git a/dkimpy_milter/util.py b/dkimpy_milter/util.py index b8ccd3a..ffc8abe 100644 --- a/dkimpy_milter/util.py +++ b/dkimpy_milter/util.py @@ -175,7 +175,7 @@ def read_keytable(tabledict, milterconfig): import dkim import syslog for dictkey, values in tabledict.items(): - if values[-1][:1] == '/': + if values[-1][:1] == '/' or values[-1][:2] == './' or values[-1][:3] == '../': key = read_keyfile(values[-1], milterconfig) tabledict[dictkey] = [values[0], values[1], key] return tabledict diff --git a/man/dkimpy-milter.8 b/man/dkimpy-milter.8 index a729768..9e0e5fd 100644 --- a/man/dkimpy-milter.8 +++ b/man/dkimpy-milter.8 @@ -182,7 +182,10 @@ should be separated by colons. .TP .I i) If the string contains none of these prefixes but starts with a slash ("/") -character, it is presumed to be a flat file as described above. +character, or "./" or "../", it is presumed to be a flat file as described +above. Note: In OpenDKIM "./" and "../" only apply to KeyTable, but for +dkimpy-milter it is generally applicable and KeyTable specification is not +a special case. .TP .I j) If the string begins with "csl:", the string is treated as a comma-separated