summaryrefslogtreecommitdiffstats
path: root/ipaserver
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2013-10-25 09:00:58 +0200
committerPetr Viktorin <pviktori@redhat.com>2013-10-25 15:35:39 +0200
commit0880d030ae7211b9d2e7279195e67f4f5712a69c (patch)
tree0800e1db99cd2c0552cd66d358b524ad8579557d /ipaserver
parentcdd2e9caffb568c0915fb335e46c464404b21e26 (diff)
downloadfreeipa-0880d030ae7211b9d2e7279195e67f4f5712a69c.tar.gz
freeipa-0880d030ae7211b9d2e7279195e67f4f5712a69c.tar.xz
freeipa-0880d030ae7211b9d2e7279195e67f4f5712a69c.zip
Make set_directive and get_directive more strict
When set_directive was used for directive "foo" and the word "foo" was detected anywhere on the line (e.g. in a comment, or in an example), it was overwritten which may potentially lead to wrong line being overwritten. Only match the directives on the beginning of the lines, it is safer. https://fedorahosted.org/freeipa/ticket/3974
Diffstat (limited to 'ipaserver')
-rw-r--r--ipaserver/install/installutils.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/ipaserver/install/installutils.py b/ipaserver/install/installutils.py
index 67eabc25..cc53f75c 100644
--- a/ipaserver/install/installutils.py
+++ b/ipaserver/install/installutils.py
@@ -331,7 +331,7 @@ def set_directive(filename, directive, value, quotes=True, separator=' '):
fd = open(filename)
newfile = []
for line in fd:
- if directive in line:
+ if line.lstrip().startswith(directive):
valueset = True
if value is not None:
if quotes:
@@ -359,7 +359,7 @@ def get_directive(filename, directive, separator=' '):
"""
fd = open(filename, "r")
for line in fd:
- if directive in line:
+ if line.lstrip().startswith(directive):
line = line.strip()
result = line.split(separator, 1)[1]
result = result.strip('"')