diff options
author | Sumit Bose <sbose@redhat.com> | 2014-02-27 12:08:03 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-03-02 21:45:16 +0100 |
commit | 17f08cbd0f909181536b93d6c12c7cd69995f09e (patch) | |
tree | 2543e30d20c32c8e41da18a16ae4a88776840faf | |
parent | 61804568ce5ede3b1a699cda17c033dd6c23f0e3 (diff) | |
download | sssd-17f08cbd0f909181536b93d6c12c7cd69995f09e.tar.gz sssd-17f08cbd0f909181536b93d6c12c7cd69995f09e.tar.xz sssd-17f08cbd0f909181536b93d6c12c7cd69995f09e.zip |
config API: read only specific files from schemaplugindir
Currently the config API read any file in the schema plugin dir,
typically /usr/share/sssd/sssd.api.d. If there are any unexpected files,
like e.g. editor copies or backups, the python code might break because
it cannot parse the files.
With this patch only files matching the pattern '^sssd-.*\.conf$' are
read from this directory.
Additionally this patch contains a file which will break the config API
self test if it is not filtered out correctly.
Reviewed-by: Stephen Gallagher <sgallagh@redhat.com>
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | src/config/SSSDConfig/__init__.py.in | 4 | ||||
-rw-r--r-- | src/config/etc/sssd.api.d/crash_test_dummy | 1 |
3 files changed, 6 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index 31ac8130f..275c899cc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -274,7 +274,8 @@ dist_noinst_DATA = \ src/config/testconfigs/sssd-noversion.conf \ src/config/testconfigs/sssd-badversion.conf \ src/config/testconfigs/sssd-invalid.conf \ - src/config/testconfigs/sssd-invalid-badbool.conf + src/config/testconfigs/sssd-invalid-badbool.conf \ + src/config/etc/sssd.api.d/crash_test_dummy ############################### # Global compilation settings # diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in index 8563a91e7..5659f9aec 100644 --- a/src/config/SSSDConfig/__init__.py.in +++ b/src/config/SSSDConfig/__init__.py.in @@ -7,6 +7,7 @@ Created on Sep 18, 2009 import os import gettext import exceptions +import re from ipachangeconf import SSSDChangeConf # Exceptions @@ -399,7 +400,8 @@ class SSSDConfigSchema(SSSDChangeConf): self.readfp(fd) fd.close() # Read in the provider files - for file in os.listdir(schemaplugindir): + for file in filter(lambda f: re.search('^sssd-.*\.conf$', f), + os.listdir(schemaplugindir)): fd = open(schemaplugindir+ "/" + file) self.readfp(fd) fd.close() diff --git a/src/config/etc/sssd.api.d/crash_test_dummy b/src/config/etc/sssd.api.d/crash_test_dummy new file mode 100644 index 000000000..02e447e80 --- /dev/null +++ b/src/config/etc/sssd.api.d/crash_test_dummy @@ -0,0 +1 @@ +Please do not delete this file, it is part of the config API self-test. |